Ответ 1
D = {}
- словарь не установлен.
>>> d = {}
>>> type(d)
<type 'dict'>
Используйте D = set()
:
>>> d = set()
>>> type(d)
<type 'set'>
>>> d.update({1})
>>> d.add(2)
>>> d.update([3,3,3])
>>> d
set([1, 2, 3])
У меня есть следующая процедура:
def myProc(invIndex, keyWord):
D={}
for i in range(len(keyWord)):
if keyWord[i] in invIndex.keys():
D.update(invIndex[query[i]])
return D
Но я получаю следующую ошибку:
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
TypeError: cannot convert dictionary update sequence element #0 to a sequence
Я не получаю никаких ошибок, если D содержит элементы. Но мне нужно, чтобы D было пустым в начале.
D = {}
- словарь не установлен.
>>> d = {}
>>> type(d)
<type 'dict'>
Используйте D = set()
:
>>> d = set()
>>> type(d)
<type 'set'>
>>> d.update({1})
>>> d.add(2)
>>> d.update([3,3,3])
>>> d
set([1, 2, 3])
>>> d = {}
>>> D = set()
>>> type(d)
<type 'dict'>
>>> type(D)
<type 'set'>
То, что вы сделали, - это словарь, а не набор.
Метод update
в словаре используется для обновления нового словаря из предыдущего, например,
>>> abc = {1: 2}
>>> d.update(abc)
>>> d
{1: 2}
В то время как в наборах он используется для добавления элементов в набор.
>>> D.update([1, 2])
>>> D
set([1, 2])