我正在尝试在列表中创建并附加列表和索引。附加任何列表元素将自动附加到此列表中可用的所有列表中 首先,我有一个列表如下
sygma_list [[]] * 3
我有另一张表格
mts_columns1 = [[1,2,3], [4,5,6], [6,7,8]]
mts_columns2 = [[1,2,3], [4,5,6], [6,7,8]]
当循环遍历sygma_list时,我喜欢这样:
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]]]
答案 0 :(得分:5)
代码中最大的问题是:执行此操作时:
__add__
你在同一个列表上创建一个size-3引用数组:不是你通常想要的,当然不是在这里
请改为:
sygma_list = [[]] * 3
这将创建3个不同的列表。
(这个构造适用于不可变对象,如[0] * 3或[“foo”] * 4)
让我们考虑一下这个固定的代码:
sygma_list = [list() for x in range(3)]
的产率:
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]]]
会列出清单,而不是列出清单列表