У меня возникла проблема, которую я не могу решить самостоятельно. Его о следующем фрагменте:Добавить список в список в 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
Это приводит следующий вывод:
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]]
Я хотел сниппета, чтобы добавить другую List-Items
к appendList
. Окончательный результат должен был выглядеть так:
[[[0], 0], [[0], 1], [[0], 2]]
Но как вы можете видеть, фрагмент кода заполняет appendList
с теми же значениями самого высокого прилавка.
Может кто-нибудь, пожалуйста, объясните мне это поведение или скажите мне, где моя ошибка?
Назначьте копию каждый раз, как этот 'appendList.append (valueList [:])' – thefourtheye
Спасибо, что решил мою проблему. Можете ли вы объяснить, почему? – user2058521
Написание ответа на это прямо сейчас. – ppperry