Compreensões Python: compreensões de lista, ditado e conjunto
Escreva um Python mais limpo e rápido. Lista mestre, dicionário e compreensão de conjuntos com exemplos práticos, condições de filtragem e loops aninhados.
Visão geral
As compreensões são um dos recursos mais adorados do Python, oferecendo uma sintaxe concisa e altamente legível para a criação de novas coleções (listas, dicionários e conjuntos) a partir de iteráveis existentes. Em vez de escrever loops `for` de várias linhas e anexar itens manualmente, as compreensões permitem que você execute a mesma transformação, filtragem e atribuição em uma única e expressiva linha de código.
As compreensões de lista são a variante mais comum, estruturadas como `[expressão para item em condição if iterável]`. Nos bastidores, o Python otimiza as compreensões para serem executadas em velocidade próxima à C, muitas vezes superando os loops manuais `for` equivalentes porque o loop é tratado pelo interpretador subjacente. Eles são ideais para transformações rápidas, como converter uma lista de temperaturas Celsius em Fahrenheit ou extrair chaves específicas de uma lista de registros de usuários.
Além das listas, o Python oferece suporte à compreensão de Dicionário e Conjunto. Uma compreensão de dicionário, definida com chaves e pares de valores-chave (por exemplo, `{chave: valor para x em iterável}`), é altamente útil para inverter pares de mapeamento ou analisar metadados. As compreensões de conjunto geram coleções exclusivas, removendo automaticamente as duplicatas. Embora as compreensões sejam incrivelmente poderosas, os desenvolvedores devem evitar complicá-las; se uma compreensão requer loops aninhados ou condições complexas, um loop `for` tradicional geralmente é mais fácil de ler e manter.
Saída de código e execução
Demonstra transformações de lista, filtragem condicional e criação de um dicionário a partir de entradas de mapeamento.
numbers = [1, 2, 3, 4, 5, 6]
# List comprehension with filter (even squares)
even_squares = [x**2 for x in numbers if x % 2 == 0]
# Set comprehension (unique word lengths)
words = ["python", "java", "ruby", "python"]
word_lengths = {len(w) for w in words}
# Dictionary comprehension (number: square)
square_map = {n: n**2 for n in numbers[:4]}
print(f"Even squares: {even_squares}")
print(f"Unique lengths: {word_lengths}")
print(f"Square mapping: {square_map}")Even squares: [4, 16, 36]
Unique lengths: {4, 6}
Square mapping: {1: 1, 2: 4, 3: 9, 4: 16}Implementação passo a passo
- Filtrando valores vazios ou dados inválidos dos logs
- Mapeando cargas de API em mapeamentos de dados de valor-chave
- Formatando rapidamente linhas do banco de dados em listas simples
Perguntas frequentes
As compreensões são mais rápidas que os loops normais?
Sim, na maioria dos casos eles são mais rápidos porque a iteração é tratada por código C otimizado dentro do interpretador Python.
Devo sempre usar compreensões?
A legibilidade do código é a prioridade do python. Se a compreensão tiver lógica aninhada ou tiver mais de uma ou duas linhas, é preferível um loop tradicional.
Tópicos Relacionados
Aprenda tudo sobre listas Python. Descubra como criar, fatiar, modificar e iterar nativamente arrays em Python.
Dicionários PythonDicionários Master Python. Aprenda a armazenar, buscar e manipular dados de pares de valores-chave. Entenda o desempenho e as práticas recomendadas para mapeamentos.
Conjuntos PythonConjuntos mestres em Python. Aprenda a armazenar valores exclusivos, executar interseções, uniões, diferenças e compreender os benefícios de desempenho do hash.
Recursos Python recomendados
Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.
Como classificar uma lista em Python
Aprenda como classificar uma lista em Python usando o método sort() e a função sorted(). Descubra exemplos de classificação de chaves personalizadas e ordem reversa.
Folha de dicas de compreensão do Python
Escreva listas, dicionários, conjuntos e compreensões de gerador concisas e legíveis em Python.
Python vs JavaScript: qual linguagem de programação é a melhor?
Uma comparação abrangente entre Python e JavaScript. Explore diferenças de sintaxe, desempenho, casos de uso (backend versus frontend) e exemplos de codificação.