当几个列表加在一起时,finallist [1] [1]不能只替换一个元素

时间:2015-07-15 01:44:31

标签: python python-3.x

问题是:

a = [['0','0','0']]
b = [ ]
b = b + a + a
print(b) 

输出

[['0', '0', '0'], ['0', '0', '0']]

但是当我输入

b[0][0] = 'x'
print(b)

输出

[['x', '0', '0'], ['x', '0', '0']]

我很想知道如何只替换b中的第一个元素,比如

[['x', '0', '0'], ['0', '0', '0']]

1 个答案:

答案 0 :(得分:1)

当您将a与a连接并存储在b中时,您只是将对同一列表(在本例中为内部列表)的引用连接两次,而不是复制内部列表。这就是b[0]内的任何变化都反映在b[1]内部的原因。您可以尝试复制列表,如 -

import copy
b = b + copy.deepcopy(a) + copy.deepcopy(a)

copy.deepcopy()进行深度复制,这就是你想要的。