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}
zip()
para Juntar Listas
10. Trabalhando com 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. 🚀