我有一个返回列表的函数,我想使用紧凑的生成器表达式(或任何好的和紧凑的)在列表上调用时合并该函数的输出
假设我有一个def foo(bar):
,其中bar是整数,并在经过一些疯狂的复杂计算后返回一个列表。
foo(1)=[9,1,5]
foo(2)=[1]
foo(3)=[7,1]
arr=[1,2,3]
如何在一行代码后获得arr=[9,1,5,1,7,1]
?
arr=[foo(x) for x in arr]
给了我[[9,1,5],[1],[7,1]]
我不想写另一行来推出列表中的列表。
答案 0 :(得分:6)
from itertools import chain
result = list(chain.from_iterable(foo(x) for x in arr))