为什么会这样?
In [1]: a=[[0]*2]*2
In [2]: a
Out[2]: [[0, 0], [0, 0]]
In [3]: a[0][0]=1
In [4]: a
Out[4]: [[1, 0], [1, 0]]
不应该吗?
In [4]: a
Out[4]: [[1, 0], [0, 0]]
答案 0 :(得分:0)
Create List of Single Item Repeated n Times in Python
正如上面的链接所解释的,因为您使用了*运算符,所以主列表中的所有列表都引用相同的列表。因此,当你改变一个时,你真的在同时改变其他的。试试这个:
a = [[0, 0], [0, 0]]
a[0][0] = 1
这样您就可以在a
中明确定义两个不同的子列表。