読者です 読者をやめる 読者になる 読者になる

Pythonでのネストされた配列の展開 (Rubyでのflatten)

Rubyでのネストされた配列を展開して、1つの配列に詰め込むflattenメソッドをPythonでやる。

Rubyでの結果は以下

[1] pry(main)> a = [[1,2,],[3,4]]
=> [[1, 2], [3, 4]]
[2] pry(main)> a
=> [[1, 2], [3, 4]]
[3] pry(main)> a.flatten
=> [1, 2, 3, 4]

こんな感じに展開される。

これをPythonでやるには、itertools を使う。

In [1]: a = [[1,2],[3,4]]

In [2]: a
Out[2]: [[1, 2], [3, 4]]

In [3]: from itertools import chain

In [4]: chain.from_iterable(a)
Out[4]: <itertools.chain at 0x107ec5d30>

In [5]: list(chain.from_iterable(a))
Out[5]: [1, 2, 3, 4]

こんな感じ。