重複の可能性:
Python でリストのリストからフラット リストを作成する
サブリストのすべての要素を含む、多次元 (ネストされた) python リストを単一のリストに変換する簡単な方法を見つけようとしています。
例えば:
A = [[1,2,3,4,5]]
に変わります
A = [1,2,3,4,5]
また
A = [[1,2], [3,4]]
に変わります
A = [1,2,3,4]
重複の可能性:
Python でリストのリストからフラット リストを作成する
サブリストのすべての要素を含む、多次元 (ネストされた) python リストを単一のリストに変換する簡単な方法を見つけようとしています。
例えば:
A = [[1,2,3,4,5]]
に変わります
A = [1,2,3,4,5]
また
A = [[1,2], [3,4]]
に変わります
A = [1,2,3,4]
itertools.chainを使用します。
itertools.chain(*iterables)
:最初の iterable からすべての iterable が使い果たされるまで要素を返し、次にすべての iterable が使い果たされるまで次の iterable に進む反復子を作成します。連続したシーケンスを単一のシーケンスとして扱うために使用されます。
from itertools import chain
A = [[1,2], [3,4]]
print list(chain(*A))
# or better: (available since Python 2.6)
print list(chain.from_iterable(A))
出力は次のとおりです。
[1, 2, 3, 4]
[1, 2, 3, 4]
使用reduce
機能
reduce(lambda x, y: x + y, A, [])
またはsum
sum(A, [])
最初のケースは、次のように簡単に行うこともできます。
A=A[0]
itertools
そのためのチェーン機能を提供します。
http://docs.python.org/library/itertools.html#recipesから:
def flatten(listOfLists):
"Flatten one level of nesting"
return chain.from_iterable(listOfLists)
結果は反復可能であるため、必要になる場合があることに注意してくださいlist(flatten(...))
。