Python/Fundamentos/Compreensão de Listas
Python⏱ ~2 min de leitura

Compreensão de Listas

List comprehensions

List comprehensions são uma sintaxe concisa para criar listas a partir de outros iteráveis. São mais rápidas e legíveis que loops for equivalentes para transformações simples.

A sintaxe é [expressão for variável in iterável if condição], onde a parte do if é opcional. Também existem dict comprehensions ({k: v for ...}) e set comprehensions ({v for ...}).

Expressões geradoras são como list comprehensions mas usam parênteses e são lazy — não calculam tudo de uma vez, economizando memória para grandes conjuntos de dados.

Exemplo.java
# List comprehension básica
quadrados = [x**2 for x in range(10)]
# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

# Com filtro
pares = [x for x in range(20) if x % 2 == 0]
# [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

# Transformação de strings
nomes = ["ana", "bob", "carlos"]
maiusculos = [n.upper() for n in nomes]
# ["ANA", "BOB", "CARLOS"]

# Dict comprehension
tamanhos = {nome: len(nome) for nome in nomes}
# {"ana": 3, "bob": 3, "carlos": 6}

# Set comprehension
letras = {c for c in "abracadabra"}
# {"a", "b", "c", "d", "r"}

# Comprehension aninhada (flatten)
matriz = [[1, 2], [3, 4], [5, 6]]
flat = [n for linha in matriz for n in linha]
# [1, 2, 3, 4, 5, 6]

# Generator expression (lazy, economiza memória)
soma = sum(x**2 for x in range(1_000_000))
💡 Dica pro

Use comprehensions para transformações simples. Para lógica mais complexa, um loop for explícito é mais legível.

Recompensa+35 XP+exercícios