list= []
x = ['A', 'B', 'C', 'D', 'E', 'F', 'G']
for i in range(2):
list.append(x)
list[0][0]="x"
print list
印刷后我得到了这个:
[['x', 'B', 'C', 'D', 'E', 'F', 'G'], ['x', 'B', 'C', 'D', 'E', 'F', 'G']]
每个列表中的第一项被'x'替换,而我只希望第一个列表中的第一项被'x'替换(因此行列表[0] [0] =“x”)< / p>
答案 0 :(得分:1)
第list.append(x)
行将x
的引用添加到list
。两个子列表最终都指向同一个对象(与x
一样)。事实上,执行x[0] = 'x'
与list[0][0] = 'x'
具有完全相同的效果。要使子列表独立,请执行list.append(x.copy())
或list.append(x[:])