Files
30-seconds-of-code/snippets/deep_flatten.md
2020-01-03 13:08:53 +02:00

486 B

title, tags
title tags
deep_flatten list,recursion,intermediate

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]