deep_flatten()

deep_flatten()

Deep flattens a list.

Use recursion. Use isinstance() with collections.abc.Iterable to check if an element is iterable. If it is, 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]