Python ‐ List Comprehension - cunhapaulo/ReferenceCard GitHub Wiki

Sintaxe Básica

[expressão for item in iterável if condição]
  • expressão: o que será feito com cada item.
  • item: cada elemento do iterável.
  • iterável: qualquer coleção (lista, tupla, conjunto, dicionário, etc.).
  • condição (opcional): um filtro para selecionar quais elementos serão incluídos.

🔹 Exemplos Avançados de List Comprehension

1. Criando uma Lista de Quadrados

quadrados = [x ** 2 for x in range(10)]
print(quadrados)  # Saída: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

2. Filtrando Números Pares

pares = [x for x in range(20) if x % 2 == 0]
print(pares)  # Saída: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

3. Transformando Strings (Maiúsculas)

nomes = ["ana", "bruno", "carlos"]
nomes_maiusculos = [nome.upper() for nome in nomes]
print(nomes_maiusculos)  # Saída: ['ANA', 'BRUNO', 'CARLOS']

4. Criando Tuplas

pares_indices = [(x, x**2) for x in range(5)]
print(pares_indices)  # Saída: [(0, 0), (1, 1), (2, 4), (3, 9), (4, 16)]

5. Trabalhando com Condições (If-Else)

resultado = ["Par" if x % 2 == 0 else "Ímpar" for x in range(10)]
print(resultado)  # Saída: ['Par', 'Ímpar', 'Par', 'Ímpar', 'Par', 'Ímpar', 'Par', 'Ímpar', 'Par', 'Ímpar']

6. Trabalhando com Listas Aninhadas (Matriz)

matriz = [[x * y for x in range(1, 6)] for y in range(1, 6)]
for linha in matriz:
    print(linha)

# Saída:
# [1, 2, 3, 4, 5]
# [2, 4, 6, 8, 10]
# [3, 6, 9, 12, 15]
# [4, 8, 12, 16, 20]
# [5, 10, 15, 20, 25]

7. Extraindo Apenas Vogais de um Texto

texto = "A programação funcional é poderosa!"
vogais = [letra for letra in texto if letra.lower() in "aeiou"]
print(vogais)  # Saída: ['A', 'o', 'a', 'a', 'ã', 'o', 'a', 'u', 'i', 'o', 'a', 'é', 'o', 'e', 'o', 'a']

8. Criando um Dicionário com Comprehension

quadrados_dict = {x: x**2 for x in range(5)}
print(quadrados_dict)  # Saída: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

9. Criando um Conjunto com Comprehension

numeros_unicos = {x % 3 for x in range(10)}
print(numeros_unicos)  # Saída: {0, 1, 2}

10. Trabalhando com zip() para Juntar Listas

nomes = ["Ana", "Bruno", "Carlos"]
idades = [25, 30, 22]
pessoas = {nome: idade for nome, idade in zip(nomes, idades)}
print(pessoas)  # Saída: {'Ana': 25, 'Bruno': 30, 'Carlos': 22}

Conclusão

A abrangência de listas (List Comprehension) em Python é uma forma eficiente e elegante de manipular coleções, reduzindo a necessidade de laços for explícitos e deixando o código mais compacto e legível. 🚀