
Envoyé par
Sve@r
Bonjour
1 2 3 4 5 6
| dictionnaire={}
dictionnaire[ma_clef]=[]
dictionnaire[ma_clef].append(1)
dictionnaire[ma_clef].append(2)
dictionnaire[ma_clef].append(3)
print(dictionnaire[ma_clef]) |
Une clef de dictionnaire c'est comme une variable de base. Si une variable contient un élément immuable (int, str, float, tuple) alors cet élément ne peut pas "s'étendre". Il peut juste être remplacé par un autre.
Si maintenant cette variable contient un élément mutable (liste, ensemble, dictionnaire) alors cet élément peut s'étendre en utilisant une méthode dédiée.
Et cette règle s'applique à tout ce qui peut "agréger des éléments ensembles" (un tuple, une liste, un ensemble, un dictionnaire). Par exemple un tuple c'est n éléments ensembles, chaque élément pouvant donc lui-même être mutable ou immuable.
1 2 3 4 5 6
| >>> xxx=(list(), "toto")
>>> xxx[0].append(1)
>>> xxx[0].append(2)
>>> xxx[0].append(3)
>>> xxx
([1, 2, 3], "toto") |
Merci beaucoup le code marche mais j'ai un soucis quand j'essaie de me l'approprier...
1 2 3 4 5 6 7 8 9 10
| dictionnaire = {}
liste = [1,2,3]
ma_clef = "a"
dictionnaire={}
dictionnaire[ma_clef]=[]
dictionnaire[ma_clef].append(1)
dictionnaire[ma_clef].append(2)
dictionnaire[ma_clef].append(3)
print(dictionnaire) |
comme ça votre code marche (j'ai retiré le [ma_clef] du print pour voir l'ensemble du dictionnaire) mais maintenant si je créer une liste ma_clef = [] à la place de ma_clef = "a" et que j'ajoute une fonction append pour fournir cette liste il me renvoi
TypeError: unhashable type: 'list'
j'ai cherché des infos sur cette erreur mais je ne suis pas sûr d'avoir tout compris
Partager