异常列表行为

Sag*_*she 1 python

我正在研究一些问题并遇到了这个问题.

Python代码

row=[]
col=[]
init=[-1,-1]
Run Code Online (Sandbox Code Playgroud)

现在我把它附加initrowcol.

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我的rowcol成为 row = [[9,-1],[9,-1]]col = [[9,-1],[9,-1]]

cni*_*tar 6

发生这种情况是因为您init反复存储对象的相同引用.因此,当您修改对象时,每个人都会看到它.

您可以尝试append使用列表的副本.例如,一种方式可能是:

row.append(list(init))
Run Code Online (Sandbox Code Playgroud)

克隆列表的方法不止一种.