Je suis confronté à un problème que je ne peux pas résoudre tout seul maintenant. Son sur l'extrait suivant:Ajouter Liste à Liste en Python
counter = 0
appendList = []
valueList = [[0], [0]]
for i in range(0,3):
valueList[1] = counter
print "Loop " , i , " valueList: " , valueList
print "Appending (valueList): " , valueList , " to (appendList): " , appendList
appendList.append(valueList)
counter = counter + 1
print "Final appendList: " , appendList
Il en résulte la sortie suivante:
Loop 0 valueList: [[0], 0]
Appending (valueList): [[0], 0] to (appendList): []
Loop 1 valueList: [[0], 1]
Appending (valueList): [[0], 1] to (appendList): [[[0], 1]]
Loop 2 valueList: [[0], 2]
Appending (valueList): [[0], 2] to (appendList): [[[0], 2], [[0], 2]]
Final appendList: [[[0], 2], [[0], 2], [[0], 2]]
Je voulais que le Snippet d'ajouter différents List-Items
au appendList
. Le résultat final devrait ressembler à ceci:
[[[0], 0], [[0], 1], [[0], 2]]
Mais comme vous pouvez le voir, l'extrait remplit le appendList
avec les mêmes valeurs de la plus haute contre.
Quelqu'un peut-il m'expliquer ce comportement ou me dire où est mon erreur?
Affectez une copie à chaque fois, comme ceci 'appendList.append (valueList [:])' – thefourtheye
Merci mon ami, qui a résolu mon problème. Pouvez-vous expliquer pourquoi? – user2058521
Écrire une réponse à ce sujet maintenant. – ppperry