Da trilha de Python Este conceito ainda não saiu como card do dia. ir para o card de hoje

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 aplicando expr a 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 for para lógica complexa.
compreensoes.py
# 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}

Exercícios

  1. 1
    Fácil

    Quadrado dos números pares

    Crie uma list comprehension que gere uma lista com o quadrado de cada número par de 1 a 10 (inclusive). Imprima a lista resultante.

    Resolver
  2. 2
    Médio

    Dicionário de comprimentos

    Dada a lista palavras = ['python', 'java', 'c', 'javascript'], crie um dict comprehension que mapeie cada palavra ao seu comprimento. Imprima o dicionário resultante.

    Resolver
  3. 3
    Desafio

    Conjunto de vogais únicas

    Dada a string frase = 'A programação em Python é divertida', crie um set comprehension que extraia todas as vogais únicas (a, e, i, o, u) presentes na frase, ignorando maiúsculas/minúsculas e acentos. Imprima o conjunto resultante em ordem alfabética.

    Resolver

Continue estudando