加入/合并二维列表



Hi我有一个for循环,它在每次迭代中创建一个2d列表,具有以下结构

listStructure = [(,1,2,3),(1,2,3)]

问题是我有以下代码

l = []
for element in range(2):
a function that returns the above mentioned listStructure
l.append(listStructure)

并返回以下结构

l = [[(1,2,3),(1,2,3)],[(1,2,3),(1,2,3)]]

是否有一种方法可以确保列表具有以下结构

l = [(1,2,3),(1,2,3),(1,2,3),(1,2,3)]

或者在具有上述结构的事实之后对其进行后处理的方法

使用list.extend:

lst = []
for element in range(2):
# a function that returns the above mentioned listStructure
lst.extend(listStructure)

注意:不要将变量命名为list,您正在隐藏python内置类型。

方法在事实发生后对其进行后处理,以具有上述结构

您可以使用itertools.chain按照的方式使结果变平

import itertools
lst = [[(1,2,3),(1,2,3)],[(1,2,3),(1,2,3)]]
lst = list(itertools.chain(*lst))
print(lst)

输出:

[(1, 2, 3), (1, 2, 3), (1, 2, 3), (1, 2, 3)]

注意,itertools.chain返回迭代器,所以我使用list(...)来获得list

不要使用python内置类型的变量。您可以将变量名称更改为num、num1或ls。你想要什么,但不是python内置类型。

最新更新