2

リストを返す関数があり、コンパクト ジェネレーター式 (または適切でコンパクトなもの) を使用してリストで呼び出されたときに、その関数の出力をマージしたいと考えています。

バーが整数である def foo(bar):場所があり、非常に複雑な計算の後にリストを返すとします。

foo(1)=[9,1,5]
foo(2)=[1]
foo(3)=[7,1]

arr=[1,2,3]

arr=[9,1,5,1,7,1]1行のコードの後、うまくいけばどうすれば取得できますか?

arr=[foo(x) for x in arr]そして、リスト内のリストを[[9,1,5],[1],[7,1]]
ロールアウトするために別の行を書くのは嫌いです。

4

1 に答える 1

6
from itertools import chain
result = list(chain.from_iterable(foo(x) for x in arr))
于 2013-06-20T08:45:23.373 に答える