List Comprehension no Python: Substitua Loops 'for' por Código em 1 Linha

List Comprehension no Python: Substitua Loops 'for' por Código em 1 Linha

A List Comprehension é um recurso idiomático do Python que permite criar e modificar listas de forma concisa em uma única linha de código. Ela substitui estruturas tradicionais de loops for e chamadas encadeadas de map() ou filter(), tornando a leitura do código mais limpa e a execução mais rápida.

Python
# Lista de valores numéricos de exemplo
numeros = [12, 5, 8, 19, 20, 3, 14]

# 1. Transformação simples: Elevar todos os números ao quadrado
quadrados = [x ** 2 for x in numeros]

# 2. Filtragem simples: Manter apenas os números pares
pares = [x for x in numeros if x % 2 == 0]

# 3. Transformação e Filtragem juntas: Elevar ao quadrado apenas os números maiores que 10
quadrados_maiores_10 = [x ** 2 for x in numeros if x > 10]

# Exemplo prático de saída
print(f"Lista Original: {numeros}")
print(f"Transformação (Quadrados): {quadrados}")
print(f"Filtragem (Apenas Pares): {pares}")
print(f"Filtragem + Transformação: {quadrados_maiores_10}")

Pontos-chave

  • Estrutura de Sintaxe Básica: A sintaxe segue o padrão [expressao for item in iteravel if condicao], onde a expressao define a transformação e o if opcional atua como filtro.

  • Performance Superior: Por ser otimizada diretamente na linguagem em nível de C (CPython), a List Comprehension costuma ser consideravelmente mais rápida do que a montagem de uma nova lista via append() dentro de um loop for tradicional.

  • Uso de Cláusula if-else (Ternária): Para transformar os elementos com condições diferentes (ex: substituir pares por "par" e ímpares por "ímpar"), o operador ternário deve vir antes do for: ["par" if x % 2 == 0 else "ímpar" for x in numeros].

  • Legibilidade e Sobrecarga: Evite aninhar múltiplas list comprehensions ou adicionar condições extremamente complexas na mesma linha, pois isso prejudica a legibilidade e a manutenção do código.

Comentários

Postagens mais visitadas deste blog

Gerando Relatórios em PDF com Python (ReportLab e FPDF)

Python para Computação Quântica: Introdução com Qiskit

C# e Banco de Dados: Como Conectar e Realizar Operações com SQL Server