Pular para o conteúdo

Como usarhttps://codemdd.io/recuperar a lista em lista flatten no Python

CodeMDD.io

Como Aplanar uma Lista de Listas em Python

Às vezes, quando estamos trabalhando com dados, podemos ter os dados como uma lista de listas aninhadas. Uma operação comum é aplanar esses dados em uma lista unidimensional em Python. Aplanar uma lista envolve converter uma lista multidimensional, como uma matriz, em uma lista unidimensional.

Para ilustrar melhor o que significa aplanar uma lista, suponha que você tenha a seguinte matriz de valores numéricos:

matrix = [
[9, 3, 8, 3],
[4, 5, 2, 8],
[6, 4, 3, 1],
[1, 0, 4, 5],
]

A variável ‘matrix’ contém uma lista em Python que contém quatro listas aninhadas. Cada lista aninhada representa uma linha na matriz. As linhas armazenam quatro itens ou números cada. Agora, vamos supor que você queira transformar essa matriz na seguinte lista:

[9, 3, 8, 3, 4, 5, 2, 8, 6, 4, 3, 1, 1, 0, 4, 5]

Como você pode aplanar sua matriz e obter uma lista unidimensional como a acima? Neste tutorial, você aprenderá como fazer isso em Python.

Como Aplanar uma Lista de Listas com um Loop for

Como aplanar uma lista de listas em Python? Em geral, para aplanar uma lista de listas, você pode seguir as seguintes etapas:

  1. Criar uma nova lista vazia para armazenar os dados aplanados.
  2. Iterar sobre cada lista aninhada na lista original.
  3. Adicionar cada item da lista aninhada atual à lista de dados aplanados.
  4. Retornar a lista resultante com os dados aplanados.

Existem várias maneiras de executar essas etapas em Python. Arguably, a maneira mais natural e legível de fazer isso é usar um loop for, que permite iterar explicitamente sobre as sublistas.

Então, você precisa de uma maneira de adicionar itens à nova lista aplanada. Para isso, você tem algumas opções válidas. Primeiro, você pode usar o método .extend() da própria classe list e, em seguida, pode experimentar o operador de concatenação aumentada (+=).

Para continuar com o exemplo da matrix, aqui está como você traduziria essas etapas para código Python usando um loop for e o método .extend():

def aplanar_extend(matriz):
nova_lista = []
for linha in matriz:
nova_lista.extend(linha)
return nova_lista

Dentro da função aplanar_extend(), você começa criando uma nova lista vazia chamada nova_lista. Você usará essa lista para armazenar os dados aplanados quando extraí-los da matriz. Em seguida, você inicia um loop para iterar sobre as listas internas, ou aninhadas, da matriz. Neste exemplo, você usa o nome linha para representar a lista aninhada atual.

Em cada iteração, você usa o método .extend() para adicionar o conteúdo da lista atual à nova_lista. Este método recebe um objeto iterável como argumento e acrescenta seus itens ao final da lista alvo.

Agora execute o seguinte código para verificar se sua função faz o trabalho:

matriz = [
[9, 3, 8, 3],
[4, 5, 2, 8],
[6, 4, 3, 1],
[1, 0, 4, 5],
]
lista_aplanada = aplanar_extend(matriz)
print(lista_aplanada)

A saída será:

[9, 3, 8, 3, 4, 5, 2, 8, 6, 4, 3, 1, 1, 0, 4, 5]

Parabéns, você acabou de aplanar com sucesso uma lista de listas usando um loop for e o método .extend()!

Next, we’ll explore another approach to flatten a list of lists using a comprehension.