J'ai la procédure suivante:
def myProc(invIndex, keyWord):
D={}
for i in range(len(keyWord)):
if keyWord[i] in invIndex.keys():
D.update(invIndex[query[i]])
return D
Mais j'obtiens l'erreur suivante:
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
TypeError: cannot convert dictionary update sequence element #0 to a sequence
Je n'obtiens aucune erreur si D contient des éléments. Mais j'ai besoin que D soit vide au début.
{}
est un dictionnaire, pas un ensemble.D={}
vous déclarez un dictionnaire vide, pas un ensemble. Vous déclarez un ensemble vide parS=set()
.Réponses:
D = {}
est un dictionnaire non défini.Utilisez
D = set()
:la source
Ce que vous avez créé est un dictionnaire et non un ensemble.
La
update
méthode dans le dictionnaire est utilisée pour mettre à jour le nouveau dictionnaire à partir d'un précédent, comme ceci,Alors que dans les ensembles, il est utilisé pour ajouter des éléments à l'ensemble.
la source
Lorsque vous affectez une variable à des accolades vides {} par exemple:,
new_set = {}
cela devient un dictionnaire. Pour créer un ensemble vide, assignez la variable à un 'set ()' ie:new_set = set()
la source