Pular para o conteúdo

Como usar o método de achatamento de listas no Python

CodeMDD.io

Como Aplanar uma Lista de Listas em Python

Às vezes, quando você está trabalhando com dados, pode 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, digamos que você tenha a seguinte matriz de valores numéricos:

Python

>>> matriz = [
... [9, 3, 8, 3],
... [4, 5, 2, 8],
... [6, 4, 3, 1],
... [1, 0, 4, 5],
... ]

A variável matriz contém uma lista do 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, digamos que você queira transformar esta matriz na seguinte lista:

Python

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

Como você consegue 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 você pode aplanar uma lista de listas em Python? Em geral, para aplanar uma lista de listas, você pode seguir as seguintes etapas, explicitamente ou implicitamente:

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

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

Python

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

Dentro do aplanar_extend(), você primeiro cria uma nova lista vazia chamada lista_aplanada. Você usará essa lista para armazenar os dados aplanados quando você 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.

Agora, execute o código a seguir 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],
]
resultado = aplanar_extend(matriz)
print(resultado)

A saída será:

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

Parabéns! Você conseguiu aplanar sua lista de listas usando um loop for e o método .extend(). Agora você pode aplicar esses mesmos conceitos em suas próprias tarefas de análise de dados ou onde mais aplanar listas aninhadas possa ser útil.

Continue lendo para aprender outras maneiras de aplanar uma lista de listas em Python.