更改列表python列表中的值。为什么它会改变整行? [重复]

问题描述 投票:-2回答:1

这个问题在这里已有答案:

为什么会这样?

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]]
python list
1个回答
0
投票

Create List of Single Item Repeated n Times in Python

正如上面的链接所解释的那样,因为您使用了*运算符,所以主列表中的所有列表都引用相同的列表。因此,当你改变一个时,你真的在​​同时改变其他的。试试这个:

a = [[0, 0], [0, 0]]
a[0][0] = 1

这样您就可以在a中明确定义两个不同的子列表。

© www.soinside.com 2019 - 2024. All rights reserved.