Python Coleções Básico
Compreensões
As compreensões são uma forma concisa e idiomática de criar listas, dicionários e conjuntos em Python. Elas permitem gerar uma nova coleção a partir de um iterável, aplicando uma expressão e, opcionalmente, filtros condicionais, tudo em uma única linha.
A sintaxe básica é [expressão for item in iterável if condição] para listas, {chave: valor for item in iterável if condição} para dicionários e {expressão for item in iterável if condição} para conjuntos. A condição é opcional e serve como filtro.
Compreensões são mais legíveis e geralmente mais rápidas que loops for equivalentes, mas devem ser usadas com moderação: se a expressão ou a condição ficarem complexas, é melhor usar um loop tradicional para manter a clareza.
Neste card, você vai aprender a criar listas, dicionários e conjuntos com compreensões, aplicar filtros condicionais e avaliar quando vale a pena usá-las.
Pontos-chave
- List comprehension:
[expr for item in iterável]cria uma lista aplicandoexpra cada item. - Dict comprehension:
{chave: valor for item in iterável}cria um dicionário. - Set comprehension:
{expr for item in iterável}cria um conjunto (sem duplicatas). - Condicionais no final filtram itens:
[x for x in nums if x > 0]. - Prefira compreensões para transformações simples; loops
forpara lógica complexa.
# Exemplos de compreensões em Python
# List comprehension: quadrados de 1 a 5
quadrados = [x**2 for x in range(1, 6)]
print(quadrados) # [1, 4, 9, 16, 25]
# Com condicional: apenas números pares
pares = [x for x in range(10) if x % 2 == 0]
print(pares) # [0, 2, 4, 6, 8]
# Dict comprehension: número -> quadrado
quadrados_dict = {x: x**2 for x in range(1, 5)}
print(quadrados_dict) # {1: 1, 2: 4, 3: 9, 4: 16}
# Set comprehension: valores únicos de uma lista
valores = [1, 2, 2, 3, 3, 3]
unicos = {x for x in valores}
print(unicos) # {1, 2, 3}
# Com condicional no dict: apenas números ímpares
impares_dict = {x: x**2 for x in range(1, 6) if x % 2 == 1}
print(impares_dict) # {1: 1, 3: 9, 5: 25}