Explorando o Módulo functools em Python

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.
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)
TestarIsso 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.
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)
TestarAlternativamente, 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)
TestarPara 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, [])
TestarUm 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)
TestarEste método é simples e funciona bem, especialmente ao lidar com um grande número de sublistas.
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!
Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:
Comentários
30xp