生成器表达式调用返回列表的函数

时间:2013-06-20 08:44:25

标签: python generator-expression

我有一个返回列表的函数,我想使用紧凑的生成器表达式(或任何好的和紧凑的)在列表上调用时合并该函数的输出

假设我有一个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]]我不想写另一行来推出列表中的列表。

1 个答案:

答案 0 :(得分:6)

from itertools import chain
result = list(chain.from_iterable(foo(x) for x in arr))