我正在解决一些问题并遇到了这个问题。
Python代码
row=[]
col=[]
init=[-1,-1]
现在我将此init
附加到row
和col
。
row.append(init)
row.append(init)
col.append(init)
col.append(init)
因此row = [[-1,-1],[-1,-1]]
和col = [[-1,-1],[-1,-1]]
现在,当我更改init[0] = 9
时,row
和col
成为了row = [[9,-1],[9,-1]]
col = [[9,-1],[9,-1]]
和{{1}}
答案 0 :(得分:6)
这是因为您反复存储对象init
的相同引用。所以当你修改对象时,每个人都会看到它。
您可以尝试append
列表的副本。例如,一种方式可能是:
row.append(list(init))
clone a list的方法不止一种。
答案 1 :(得分:1)