環境設定 数値 文字列 正規表現 リスト タプル 集合 辞書 ループ 関数 クラス データクラス 時間 パス ファイル スクレイピング その他

Python の itertools.chain を使って多次元リストを一次元にする

Python で二次元リスト(リストのリスト)を一次元にするには itertoolschain を使います。

from itertools import chain

numbers = [[2, 3], [5, 7]]

flat = chain.from_iterable(numbers)
array = list(flat)

print(flat)  # <itertools.chain object at 0x102873fa0>
print(array)  # [2, 3, 5, 7]

from_iterable が返す chain オブジェクトをそのままループにかけると

from itertools import chain

numbers = [[2, 3], [5, 7]]

flat = chain.from_iterable(numbers)

for item in flat:
    print(item)

# 2
# 3
# 5
# 7

となります。

Python リスト