Python:嵌套列表分配不能正常工作

时间:2014-04-03 02:41:12

标签: python list variable-assignment

Python的版本是2.6.6

n = 0
list1=["","",""]
list2=[]
for ...    :
    # a b c changes every loop
    list1[0]=a
    list1[1]=b
    list1[2]=c
    list2[n].append(list1)
    n += 1

for j in range(n):
    print list2[j] 

问题是list2中的每个项目都是最后一个循环的值,为什么? 它似乎是由浅拷贝造成的,但我不知道如何解决它。

1 个答案:

答案 0 :(得分:3)

您需要附加list1副本

list2.append(list1[:])

否则,附加的内容是对同一个列表的引用。