Introdução
Em Python, uma lista pode conter outras listas como elementos, e essas listas podem conter ainda mais listas como elementos, formando uma estrutura aninhada. O processo de flattening (achatamento) de uma lista aninhada significa convertê-la em uma lista unidimensional, onde todos os elementos estão no mesmo nível. Neste desafio, você será solicitado a escrever uma função que realiza o deep flatten (achatamento profundo) de uma lista, o que significa que ela achatará todas as listas aninhadas recursivamente.
Deep Flatten List (Achatamento Profundo de Lista)
Escreva uma função deep_flatten(lst) que recebe uma lista lst como argumento e retorna uma nova lista que é a versão com deep flatten (achatamento profundo) de lst. A função deve usar recursão e a função isinstance() com collections.abc.Iterable para verificar se um elemento é iterável. Se um elemento for iterável, a função deve aplicar deep_flatten() recursivamente a esse elemento. Caso contrário, a função deve retornar uma lista contendo apenas esse 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]
Resumo
Neste desafio, você aprendeu como realizar o deep flatten (achatamento profundo) de uma lista usando recursão e a função isinstance() com collections.abc.Iterable. Essa técnica pode ser útil ao lidar com estruturas de dados aninhadas, como listas de listas.