Como usar uma lista de listas em Python?
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:
A variável matriz
armazena 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 imagine que você queira transformar essa matriz na seguinte lista:
Como você consegue aplanar sua matriz e obter uma lista unidimensional como a mencionada 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:
- Criar uma nova lista vazia para armazenar os dados aplanados.
- Iterar sobre cada lista aninhada na lista original.
- Adicionar cada item da sublista atual à lista de dados aplanados.
- Retornar a lista resultante com os dados aplanados.
Em seguida, 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 depois pode usar o operador de concatenação aumentado (+=
).
Para continuar com o exemplo da matriz
, aqui está como você pode traduzir essas etapas para o código Python usando um loop for
e o método .extend()
:
Dentro de aplanar_extend()
, você primeiro cria uma nova lista vazia chamada lista_aplanada
. Você usará essa lista para armazenar os dados aplanados quando os extrair da matriz
. Em seguida, você começa 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 .extend()
para adicionar o conteúdo da sublista atual à lista_aplanada
. Este método recebe um objeto iterável como argumento e anexa seus itens ao final da lista de destino.
Agora execute o código a seguir para verificar se sua função funciona corretamente:
Output:
Você obtém a lista aplanada esperada.
Agora que você sabe como aplanar uma lista de listas usando um loop for
e o método .extend()
, vamos explorar outras maneiras de realizar essa tarefa em Python.
Usando uma Compreensão para Aplanar uma Lista de Listas
Uma maneira concisa e elegante de aplanar uma lista de listas em Python é usar uma compreensão de lista. Uma compreensão de lista é uma construção especial do Python que permite criar uma nova lista com base em outra lista ou iterável existente.
Para aplanar uma lista de listas usando uma compreensão de lista, você pode escrever o seguinte código:
Neste exemplo, você cria uma nova lista usando uma compreensão de lista. A compreensão de lista possui duas partes principais:
[item for sublist in matriz]
: Isso itera sobre cada lista aninhada (sublist
) namatriz
e após isso, itera sobre cada item (item
) na lista aninhada. Cada item é adicionado à nova lista usando a sintaxeitem for sublist in matriz
.for item in sublist
: Isso itera sobre cada item na lista aninhada atual (sublist
) e adiciona o item à nova lista.
Agora, você pode chamar a função aplanar_compreensao
com a matriz de exemplo para obter a lista aplanada:
Saída:
O resultado é novamente a lista aplanada desejada.
Aplanhando uma Lista Usando Ferramentas da Biblioteca Padrão e do Python Integrado
Além de usar um loop for
ou compreensão de lista, você também pode usar algumas ferramentas da biblioteca padrão e do Python integrado para aplanar uma lista de listas.
Encadeando Iteráveis com itertools.chain()
O módulo itertools
da biblioteca padrão do Python fornece a função chain()
, que permite concatenar vários iteráveis em um único iterável. Você pode usar essa função para aplanar uma lista de listas:
Neste exemplo, você importa a função chain()
do módulo itertools
. Em seguida, você define a função aplanar_chain()
, que recebe a matriz
como argumento. Dentro da função, você usa a função chain()
juntamente com o operador *
(asterisco) para descompactar a matriz e passar cada lista aninhada como um argumento separado para chain()
. Em seguida, você transforma o resultado em uma lista usando a função list()
.
Para aplanar a matriz de exemplo, você pode chamar a função da seguinte maneira:
Saída:
Novamente, você obtém a lista aplanada esperada.
Concatenando Listas com functools.reduce()
O módulo functools
da biblioteca padrão do Python fornece a função reduce()
, que permite aplicar uma função a pares consecutivos de elementos de um iterável até que apenas um valor único seja obtido. Você pode usar essa função para aplanar uma lista de listas, concatenando as listas progressivamente até obter uma lista aplanada:
Neste exemplo, você importa a função reduce()
do módulo functools
. Em seguida, você define a função concatenar_reduce()
, que recebe a matriz
como argumento. Dentro da função, você usa a função reduce()
junto com uma função lambda para somar duas listas consecutivas e obter uma lista concatenada. A função reduce()
é aplicada em pares consecutivos de listas até que apenas uma lista aplanada permaneça.
Chame a função concatenar_reduce()
com a matriz de exemplo para obter a lista aplanada:
Saída:
Mais uma vez, você obtém a lista aplanada esperada.
Usando sum()
para Concatenar Listas
Além de usar functools.reduce()
, outra opção é usar a função sum()
do Python integrado para concatenar as listas. A função sum()
pode ser usada com uma lista de listas para concatenar os elementos e criar uma lista aplanada:
Neste exemplo, você define a função concatenar_sum()
, que recebe a matriz
como argumento. Dentro da função, você usa a função sum()
com uma lista vazia ([]
) como argumento de inicialização. A função sum()
itera sobre cada lista na matriz e as concatena usando o operador +
. A lista vazia é usada para garantir que a função sum()
retorne uma nova lista vazia na primeira iteração, em vez de tentar somar os elementos com um valor numérico.
Chame a função concatenar_sum()
com a matriz de exemplo para obter a lista aplanada:
Saída:
Uma vez mais, você obtém a lista aplanada esperada.
Considerando o Desempenho ao Aplanar Suas Listas
Ao aplanar listas, é importante considerar o desempenho, especialmente quando se trabalha com grandes quantidades de dados. Alguns métodos podem ser mais eficientes do que outros, dependendo do tamanho da lista e da quantidade de sublistas.
Por exemplo, usar um loop for
com o método .extend()
ou usar uma compreensão de lista tende a ser mais eficiente para listas pequenas ou com um número limitado de sublistas. No entanto, para listas maiores ou com muitas sublistas, pode ser mais eficiente usar ferramentas da biblioteca NumPy, como veremos a seguir.
Aplanhando Listas Python para Ciência de Dados com NumPy
Se você está trabalhando com grandes conjuntos de dados ou precisa realizar cálculos complexos em arrays multidimensionais, a biblioteca NumPy é uma opção poderosa. O NumPy oferece suporte a arrays multidimensionais eficientes e fornece várias funções para trabalhar com esses arrays, incluindo a função flatten()
, que pode ser usada para aplanar arrays multidimensionais.
Para aplanar uma lista de listas usando o NumPy, você pode fazer o seguinte:
Neste exemplo, você importa a biblioteca NumPy usando o apelido np
. Em seguida, você define a função aplanar_numpy()
, que recebe a matriz
como argumento. Dentro da função, você usa np.array()
para criar uma matriz NumPy a partir da lista de listas. Em seguida, você usa o método .flatten()
para aplanar a matriz NumPy e, finalmente, você usa o método .tolist()
para converter a matriz aplanada de volta em uma lista do Python.
Chame a função aplanar_numpy()
com a matriz de exemplo para obter a lista aplanada:
Saída:
Você obtém a lista aplanada esperada usando o NumPy.
Conclusão
Aplanhar uma lista de listas em Python é um processo comum ao trabalhar com dados. Neste artigo, você aprendeu várias maneiras de realizar essa tarefa, desde o uso de um loop for
e o método .extend()
até o uso de compreensões de lista, ferramentas da biblioteca padrão e do Python integrado, e a biblioteca NumPy para lidar com arrays multidimensionais.
Lembre-se de considerar o desempenho ao escolher o método adequado para achatamento de listas, especialmente para listas grandes ou com muitas sublistas. Use as técnicas apresentadas aqui de acordo com suas necessidades específicas e com a natureza dos seus dados.
Agora você tem as ferramentas necessárias para aplanar listas de listas em Python e pode aplicar esse conhecimento em seus próprios projetos de programação. Se você quiser se aprofundar nas técnicas de achatamento de listas em Python, não deixe de conferir o código de exemplo gratuito fornecido junto com este artigo.
- Comece Aqui
- Aprenda Python
Tutoriais de Python →
Artigos aprofundados e cursos em vídeo Caminhos de Aprendizagem →
Planos de estudo guiados para aprendizado acelerado Testes →
Verifique seu progresso de aprendizado Explorar Tópicos →
Enfoque em uma área específica ou nível de habilidade Bate-papo da Comunidade →
Aprenda com outros Pythonistas Horário de Atendimento →
Chamadas de perguntas e respostas ao vivo com especialistas em Python Podcast →
Ouça as novidades no mundo do Python Livros →
Aprofunde seu conhecimento e aprenda offline Desbloqueie Todo
o Conteúdo →
- Mais
Histórias de Aprendizes Boletim Informativo do Python Quadro de Empregos Python Conheça a Equipe Torne-se um Escritor de Tutoriais [Torne-se um Instrutor de Vídeo](/become-an- instructor/)
— Série de E-mails GRÁTIS —
🐍 Dicas de Python 💌
Receba Dicas de Python »
🔒 Sem spam. Cancele a inscrição a qualquer momento.
Explorar Tópicos Caminhos de Aprendizagem Guiada
Básicos Intermediários
Avançados
api melhores-práticas carreira comunidade bancos de dados ciência de dados estruturas de dados visualização de dados devops django docker editores flask front-end desenvolvimento de jogos interface gráfica aprendizado de máquina numpy projetos python testes ferramentas desenvolvimento web web scraping
Tabela de Conteúdo
- Como Aplanhar uma Lista de Listas com um Loop
for
- Usando uma Compreensão para Aplanhar uma Lista de Listas
- Aplanhando uma Lista Usando Ferramentas da Biblioteca Padrão e do Python Integrado
- Encadeando Iteráveis com
itertools.chain()
- Concatenando Listas com
functools.reduce()
- Usando
sum()
para Concatenar Listas
- Encadeando Iteráveis com
- Considerando o Desempenho ao Aplanhar Suas Listas
- Aplanhando Listas Python para Ciência de Dados com NumPy
- Conclusão
Remover ads