更改一个内部列表的元素会更改所有内部列表python

时间:2018-08-07 14:47:30

标签: python

基本上,这就是我所拥有的:

In [1]: list1 = [[0, 0, 0, 0]] * 10

In [2]: list1
Out[2]: 
[[0, 0, 0, 0],
 [0, 0, 0, 0],
 [0, 0, 0, 0],
 [0, 0, 0, 0],
 [0, 0, 0, 0],
 [0, 0, 0, 0],
 [0, 0, 0, 0],
 [0, 0, 0, 0],
 [0, 0, 0, 0],
 [0, 0, 0, 0]]

In [3]: list1[0][1] = 9

In [4]: list1
Out[4]: 
[[0, 9, 0, 0],
 [0, 9, 0, 0],
 [0, 9, 0, 0],
 [0, 9, 0, 0],
 [0, 9, 0, 0],
 [0, 9, 0, 0],
 [0, 9, 0, 0],
 [0, 9, 0, 0],
 [0, 9, 0, 0],
 [0, 9, 0, 0]]

当尝试将第一个列表的第二个元素更改为9时,我不知何故将所有第一个元素更改为9个。

1 个答案:

答案 0 :(得分:0)

这是浅表副本,仅复制参考。 尝试list1 = [[0, 0, 0, 0] for _ in range(10)]