Tutoriais

Como transformar uma lista de listas em uma lista única em Python?

Ana Maria Gomes 27 fev Intermediário 5xp
Compartilhar

Ao trabalhar com listas em Python, você pode se deparar com uma situação em que necessita transformar uma lista de listas em uma lista única. Essa é uma tarefa comum e existem várias maneiras de alcançá-la. Neste artigo, exploraremos alguns dos métodos mais eficientes para achatar uma lista de listas.

Achatar Usando Compreensão de Lista

Um dos métodos mais simples e rápidos para achatar uma lista de listas é usando a compreensão de lista. Veja como você pode fazer isso:

xss = [[1, 2, 3], [4, 5, 6], [7], [8, 9]]
lista_unica = [x for xs in xss for x in xs]
print(lista_unica)
Testar

Isso lhe dará a lista única [1, 2, 3, 4, 5, 6, 7, 8, 9]. O método de compreensão de lista não é apenas conciso, mas também eficiente em termos de desempenho.

Usando itertools.chain

Outro método para achatar uma lista de listas é usando a função itertools.chain. Essa abordagem é mais legível e pode ser mais rápida do que a compreensão de lista. Veja como você pode usá-la:

import itertools
lista2d = [[1, 2, 3], [4, 5, 6], [7], [8, 9]]
mesclada = list(itertools.chain(*lista2d))
print(mesclada)
Testar

Alternativamente, você pode usar itertools.chain.from_iterable sem desempacotar a lista:

import itertools
lista2d = [[1, 2, 3], [4, 5, 6], [7], [8, 9]]
mesclada = list(itertools.chain.from_iterable(lista2d))
print(mesclada)
Testar

Usando functools.reduce

Para aqueles que preferem uma abordagem de programação funcional, functools.reduce combinado com operator.iconcat é uma solução muito rápida:

import functools
import operator
a = [[1, 2, 3], [4, 5, 6], [7], [8, 9]]
lista_combinada = functools.reduce(operator.iconcat, a, [])
Testar

Usando extend em um Loop

Um método mais explícito e fácil de entender envolve usar um loop com o método extend:

a = [[1, 2, 3], [4, 5, 6], [7], [8, 9]]
saida = []
for sublista in a:
    saida.extend(sublista)
print(saida)
Testar

Este método é simples e funciona bem, especialmente ao lidar com um grande número de sublistas.

Resumo

Neste artigo, cobrimos vários métodos para achatar uma lista de listas em Python. Vimos como usar compreensão de lista, itertools.chain, functools.reduce com operator.iconcat e um loop simples com extend. Cada um desses métodos tem suas próprias vantagens, e você pode escolher aquele que melhor se adapta ao seu estilo de codificação e às necessidades de desempenho. Lembre-se, ao trabalhar com listas em Python, muitas vezes existem várias maneiras de alcançar o mesmo resultado, então é bom conhecer suas opções!

Cursos gratuitos para continuar aprendendo

Curso
Grátis · 2h 13min

Python para iniciantes: do zero ao primeiro projeto

Aprenda sobre variáveis, loops e funções e crie seu primeiro projeto Python em apenas 2 horas!

Curso
Grátis · 3h 47min

Python para dados: do zero à análise completa

Saia do zero e analise dados com Python e Pandas neste curso gratuito com certificado!

Curso
Grátis · 4h 11min

Python para IA: do zero ao primeiro chatbot

Aprenda a programar com Python e explore a inteligência artificial! Crie um chatbot prático que interage com seus próprios dados. Comece agora!

Ver todos os cursos

0 comentários

Exclusivo PRO
Faça parte da discussão

Comente e participe da conversa

Crie sua conta gratuita e compartilhe sua opinião nos comentários.

Entre para a Asimov