是否有一个简单的函数可以从列表列表中提取所有数字。例如:
l = [ [1,2], [1, 5], [2] ] -> [1,2,1,5,2]
我想避免使用循环或列表推导。
答案 0 :(得分:2)
我想避免使用循环或列表推导。
您可以将itertools.chain
方法与Extended iterable unpacking
运算符结合使用。
chain
方法生成一个迭代器,从第一个迭代中返回元素,直到它耗尽,然后进入下一个迭代,直到所有的迭代筋疲力尽。
import itertools
merged = list(itertools.chain(*l))
输出
[1,2,1,5,2]
另一种方法是使用reduce
函数。
l = reduce(lambda x,y: x+y,l)
答案 1 :(得分:1)
使用list comprehension
:
>>> x = [j for i in l for j in i]
[1, 2, 1, 5, 2]
答案 2 :(得分:1)
使用itertools.chain
<强>演示:强>
import itertools
l = [ [1,2], [1, 5], [2] ]
print(list(itertools.chain(*l))) #or print(list(itertools.chain.from_iterable(l)))
<强>输出:强>
[1, 2, 1, 5, 2]