Aplanar lista anidada

Beginner

This tutorial is from open-source community. Access the source code

Introducción

En Python, una lista puede contener otras listas como elementos, y esas listas pueden contener aún más listas como elementos, formando una estructura anidada. El proceso de aplanar una lista anidada significa convertirla en una lista unidimensional, donde todos los elementos están en el mismo nivel. En este desafío, se te pedirá escribir una función que aplane profundamente una lista, lo que significa que aplanará todas las listas anidadas de manera recursiva.

Aplanar lista anidada

Escribe una función deep_flatten(lst) que tome una lista lst como argumento y devuelva una nueva lista que sea la versión profundamente aplanada de lst. La función debe utilizar recursión y la función isinstance() con collections.abc.Iterable para comprobar si un elemento es iterable. Si un elemento es iterable, la función debe aplicar deep_flatten() recursivamente a ese elemento. En caso contrario, la función debe devolver una lista que contenga solo ese elemento.

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]

Resumen

En este desafío, has aprendido cómo aplanar profundamente una lista utilizando recursión y la función isinstance() con collections.abc.Iterable. Esta técnica puede ser útil al trabajar con estructuras de datos anidadas, como listas de listas.