【问题标题】:Changing one inner list's element changes all inner lists python [duplicate]更改一个内部列表的元素会更改所有内部列表python [重复]
【发布时间】:2018-08-07 14:47:30
【问题描述】:

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

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。这是怎么发生的?

【问题讨论】:

    标签: python


    【解决方案1】:

    这是浅拷贝,只是拷贝引用。 试试list1 = [[0, 0, 0, 0] for _ in range(10)]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-27
      • 2018-05-27
      • 2013-04-14
      • 2019-11-06
      • 1970-01-01
      • 2018-11-28
      相关资源
      最近更新 更多