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内置类型。