Listas em Python, como já havíamos falado antes, é uma função poderosa e muito usada em programação e ciência de dados. Nesse post vamos expandir o nosso conhecimento e explicar como Listas em Python podem simplificar loops.
Ambos assuntos já cobrimos extensivamente em outros posts. Listas é uma função a qual uso com muita frequência. Assim como loops é um metódo prático.
Nesse post, vamos explicar como um pode complementar o outro.
Sintaxe Básica
A expressão sempre começa com for (para). Você adiciona a variável que quiser (tente manter ordem de nomenclatura). Vamos ver um exemplo:
dobros = [] # iniciando uma lista vazia
for x in range(5):
dobros.append(x * 2)
Existe uma outra maneira de chegar aos mesmos resultados com uma expressão mais elegante. Ao invês de fazer duas linhas, podemos fazer com uma única linha.
dobros = [x * 2 for x in range(5)]
[0, 2, 4, 6, 8]
O que que aconteceu? Vamos ver com detalhes.

Fizemos uma reorganização para ficar um código mais limpo e fácil de entender.
Você observa aqui uma diferença: é que colocamos os [ e ] para que fizesse a lista. Vamos explicar com mais detalhes.[ EXPRESSÃO for ITEM in ITERÁVEL ]- EXPRESSÃO: o que você quer coletar ou transformar- ITEM: variável que percorre o iterável- ITERÁVEL: qualquer objeto percorrível: lista, tupla, range, etc.Mais um exemplo:
quadrados = [n ** 2 for n in range(10)]
print(quadrados)
As possibilidades são infinitas. Você pode fazer muita coisa utilizando o loop com a Lista. Podemos também adicionar strings à Lista. Assim:
frutas = ['banana', 'maçã']
addicionar = 'Eu gosto de '
mais_frutas = [addicionar + item for item in frutas]
Transformando um Loop Clássico
A diferença entre os dois é mais do que a sintaxe. Em códigos que são longos e podem levar horas para percorrer, isso pode salvar muito tempo. Vamos ver?
%%timeit
cubos = []
for n in range(1_000_000):
cubos.append(n ** 3)
Output:
59.9 ms ± 149 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
Fazendo da maneira acima, 10 loops demorou 59.9 miliseconds. Agora vamos fazer o mesmo da outra forma e examinar os resultados:
%%timeit
cubos = [n ** 3 for n in range(1_000_000)]
Output:
57.5 ms ± 722 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
A segunda maneira, demorou 57.5 miliseconds. Mais rápido e mais elegante.
Filtrando Elementos
Você pode adicionar um if para satisfazer condições.
Por exemplo, vamos criar uma lista de números pares.
pares = [n for n in range(20) if n % 2 == 0]
pares
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
Condição if e else Dentro da Expressão
Se precisar gerar valores diferentes dependendo de uma condição, pode usar if/else antes do for.
rotulos = ['par' if n % 2 == 0 else 'ímpar' for n in range(10)]
Compreensões Aninhadas (flatten)
Para “achatar” listas de listas:
matrix = [[1, 2, 3], [4, 5, 6]]
achatar = [item for sub in matrix for item in sub]
Exercícios Rápidos
Primos <50 – crie uma lista de números primos menores que 50 usando list comprehension.Conversão °C→°F – dada uma lista de temperaturas em °C, devolva outra lista em Fahrenheit.Nomes longos – de nomes = ["Ana", "Bruno", "Carolina", "Davi"], extraia apenas os com 5+ letras.Poste suas soluções nos comentários.
Conclusão
Compreensões de lista deixam o código mais compacto, performático e, quando bem usadas, legível. O segredo é balancear clareza e concisão.Gostou do conteúdo? Compartilhe este artigo com quem está aprendendo Python e siga nosso canal no YouTube para ver o passo a passo em vídeo!
Comentários (0)
Seja o primeiro a comentar!
Deixe um comentário