• home
  • about
  • 全ての投稿
  • ソフトウェア・ハードウェアの設定のまとめ
  • 分析関連のまとめ
  • ヘルスケア関連のまとめ
  • 生涯学習関連のまとめ

flatten

date: 2023-01-04 excerpt: flattenについて

tag: アルゴリズム


flattenについて

概要

  • dfsを用いることで実装可能
  • numpyではflatten関数が用意されている

具体例

from typing import List, Any

def flatten(nested_lst: List[Any]) -> List[Any]:
    rets = []
    def _dfs(e):
        if isinstance(e, list):
            for ne in e:
                _dfs(ne)
        else:
            rets.append(e)
    _dfs(nested_lst)
    return rets

assert flatten([[1,1],2,[1,1]]) == [1, 1, 2, 1, 1]
print()
assert flatten([1,[4,[6]]]) == [1, 4, 6]

参考

  • 341. Flatten Nested List Iterator/LeetCode


アルゴリズム Share Tweet