在python中,将列表附加到列表列表中会更改所有子列表

2024-09-29 23:31:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在列表中创建和附加一个列表和索引。附加任何列表元素将自动附加到此列表中可用的所有列表 首先,我有一个清单如下

sygma_list [[]] * 3

我还有另一张表格

^{pr2}$

当循环查看sygma_列表时,我会这样:

 for i in range(0, 3):
       sygma_list[i].append(mts_column[i])

sygma_list的结果非常令人震惊,因为append()在列表的每个元素上都有行为,而不是获得

sygma_list = [[[1,2,3], [1,2,3]],
              [[4,5,6],[4,5,6]],
              [[6,7,8],[6,7,8]]]

Tags: in元素列表forrangecolumnmtslist
1条回答
网友
1楼 · 发布于 2024-09-29 23:31:25

代码中最大的问题是:当您这样做时:

sygma_list = [[]] * 3

在同一个列表中创建一个大小为3的引用数组:这不是您通常想要的,当然也不是这里

请执行以下操作:

^{pr2}$

这将创建3个不同的列表。在

(这个构造对于像[0]*3或[“foo”]*4这样的不可变对象是可以的)

让我们考虑一下这个固定的代码:

sygma_list = [list() for _ in range(3)]

mts_column = [[1,2,3], [4,5,6], [6,7,8]]

for i in range(0, 3):
    sygma_list[i].append(mts_column[i])

print(sygma_list)

产量:

[[[1, 2, 3]], [[4, 5, 6]], [[6, 7, 8]]]

顺便说一句:不确定是否要添加或扩展列表(是否展平)

sygma_list[i].extend(mts_column[i])

会生成一个列表列表而不是列表列表列表

相关问题 更多 >

    热门问题