Mam następującą procedurę:
def myProc(invIndex, keyWord):
D={}
for i in range(len(keyWord)):
if keyWord[i] in invIndex.keys():
D.update(invIndex[query[i]])
return D
Ale pojawia się następujący błąd:
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
TypeError: cannot convert dictionary update sequence element #0 to a sequence
Nie pojawia się żaden błąd, jeśli D zawiera elementy. Ale potrzebuję, aby D na początku było puste.
{}
jest słownikiem, a nie zestawem.D={}
deklarujesz pusty słownik, a nie zbiór. Deklarujesz pusty zestaw przezS=set()
.Odpowiedzi:
D = {}
nie jest ustawiony słownik.Zastosowanie
D = set()
:źródło
To, co stworzyłeś, to słownik, a nie zestaw.
update
Metoda w słowniku służy do aktualizacji nowego słownika z poprzedniego jeden, tak jak,Natomiast w zestawach służy do dodawania elementów do zestawu.
źródło
Kiedy przypisujesz zmienną do pustych nawiasów klamrowych {}, np.:
new_set = {}
, Staje się ona słownikiem. Aby utworzyć pusty zestaw, przypisz zmienną do „set ()”, tj .:new_set = set()
źródło