Python dictionnaire : TypeError: unhashable type: 'liste'
Je vais avoir des ennuis dans le remplissage d'un dictionnaire python à partir d'un autre dictionnaire.
Supposons que la "source" dictionnaire de la chaîne que les clés et a une liste d'objets personnalisés par valeur.
Je crée ma cible dictionnaire exactement comme je l'ai été la création de ma "source" dictionnaire comment est-il possible que cela ne fonctionne pas ?
- Je obtenir
TypeError: unhashable type: 'list'
Code :
aTargetDictionary = {}
for aKey in aSourceDictionary:
aTargetDictionary[aKey] = []
aTargetDictionary[aKey].extend(aSourceDictionary[aKey])
L'erreur sur cette ligne : aTargetDictionary[aKey] = []
- fonctionne très bien sur mon terminal. Donner un exemple de aSourceDictionary qui vous aide
- Downvoted cette question depuis des aspects essentiels de la question en litige, et que l'OP n'a pas résolu les conflits. Cette question fâcheusement a surgi dans ma recherche Google, sans doute en raison de sa haute voix-comte.
Vous devez vous connecter pour publier un commentaire.
L'erreur que vous avez donné est dû au fait que, dans python, les clés de dictionnaire doit être immuable types (si la clé peut changer, il y aura des problèmes), et la liste est une mutable type.
Votre message d'erreur indique que vous essayez d'utiliser une liste de clé de dictionnaire, vous devrez changer votre liste de tuples si vous voulez les mettre comme clés dans votre dictionnaire.
Selon la doc python :
C'est en effet plutôt étrange.
Si
aSourceDictionary
ont été un dictionnaire, je ne crois pas qu'il est possible que votre code à l'échec de la façon que vous décrivez.Cela conduit à deux hypothèses:
Le code que vous êtes effectivement en cours d'exécution n'est pas identique au code dans votre question (peut-être plus tôt ou plus tard version?)
aSourceDictionary
est en fait pas un dictionnaire, mais il est d'une autre structure (par exemple, dans une liste).Selon votre description, les choses ne s'ajoutent pas. Si
aSourceDictionary
est un dictionnaire, puis votre pour la boucle doit fonctionner correctement.Il fonctionne très bien : http://codepad.org/5KgO0b1G,
votre
aSourceDictionary
variable peut avoir d'autre type de données que dict