问题是:
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']]
答案 0 :(得分:1)
当您将a与a连接并存储在b中时,您只是将对同一列表(在本例中为内部列表)的引用连接两次,而不是复制内部列表。这就是b[0]
内的任何变化都反映在b[1]
内部的原因。您可以尝试复制列表,如 -
import copy
b = b + copy.deepcopy(a) + copy.deepcopy(a)
copy.deepcopy()
进行深度复制,这就是你想要的。