flatten

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]

参考