Introdução
Em Python, uma lista pode conter outras listas como elementos. Às vezes, precisamos "achatar" (flatten) uma lista, o que significa converter uma lista aninhada em uma única lista que contém todos os elementos da lista original. Uma maneira de fazer isso é usando o operador spread. Neste desafio, você será solicitado a implementar uma função que achata uma lista usando o operador spread.
Spread List (Lista Spread)
Escreva uma função chamada spread(arg) que recebe uma lista como argumento e retorna uma nova lista que contém todos os elementos da lista original, achatados (flattened). Se um elemento da lista original for uma lista em si, seus elementos devem ser adicionados à nova lista individualmente. A função não deve modificar a lista original.
Para implementar a função, você deve iterar sobre os elementos da lista original e usar o operador spread para adicionar os elementos à nova lista. Se um elemento for uma lista, você deve usar o método extend() para adicionar seus elementos à nova lista. Se um elemento não for uma lista, você deve usar o método append() para adicioná-lo à nova lista.
def spread(arg):
ret = []
for i in arg:
ret.extend(i) if isinstance(i, list) else ret.append(i)
return ret
spread([1, 2, 3, [4, 5, 6], [7], 8, 9]) ## [1, 2, 3, 4, 5, 6, 7, 8, 9]
Resumo
Neste desafio, você aprendeu como usar o operador spread para achatar (flatten) uma lista em Python. Você também implementou uma função que recebe uma lista como argumento e retorna uma nova lista que contém todos os elementos da lista original, achatados. Esta é uma técnica útil para conhecer ao trabalhar com listas aninhadas em Python.