Deep flatten list
Deep flattens a list.
- Use recursion.
- Use
isinstance()
withcollections.abc.Iterable
to check if an element is iterable. - If it is iterable, apply
deep_flatten()
recursively, otherwise return[lst]
.
from collections.abc import Iterable def deep_flatten(lst): return ([a for i in lst for a in deep_flatten(i)] if isinstance(lst, Iterable) else [lst]) deep_flatten([1, [2], [[3], 4], 5]) # [1, 2, 3, 4, 5]