我正在研究一些问题并遇到了这个问题.
Python代码
row=[]
col=[]
init=[-1,-1]
Run Code Online (Sandbox Code Playgroud)
现在我把它附加init到row和col.
row.append(init)
row.append(init)
col.append(init)
col.append(init)
Run Code Online (Sandbox Code Playgroud)
因此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]]
发生这种情况是因为您init反复存储对象的相同引用.因此,当您修改对象时,每个人都会看到它.
您可以尝试append使用列表的副本.例如,一种方式可能是:
row.append(list(init))
Run Code Online (Sandbox Code Playgroud)
克隆列表的方法不止一种.