Como usar a compreensão de lista em Python
Aprenda como usar compreensões de lista em Python. Escreva loops concisos, aplique filtros condicionais e crie matrizes com sintaxe visual limpa.
Visão geral
A compreensão de listas é um dos recursos mais populares e icônicos do Python. Ele oferece uma sintaxe concisa, expressiva e altamente legível para criar uma nova lista a partir de um iterável existente (como uma lista, intervalo ou tupla). Ele permite que você substitua loops `for` de várias linhas e liste instruções de inicialização por uma única linha de código.
A sintaxe básica de uma compreensão de lista é `[expressão para item em iterável]`. Nos bastidores, essa sintaxe é altamente otimizada na implementação do Python, fazendo com que ela seja executada mais rápido do que os loops `for` padrão que acrescentam itens usando `.append()`. É ideal para aplicar transformações matemáticas ou modificar elementos.
As compreensões de lista também suportam filtragem condicional usando cláusulas `if`, permitindo incluir elementos seletivamente (por exemplo, `[x for x in data if x % 2 == 0]`). Embora incrivelmente poderosas, as compreensões de lista devem ser usadas com cuidado: se sua compreensão for altamente complexa ou aninhada, é melhor escrever loops padrão para manter a legibilidade.
Saída de código e execução
Este script demonstra compreensão básica de lista, filtragem com condições e transformação de valores de string.
# 1. Traditional for-loop way to build a list
squares_loop = []
for x in range(1, 6):
squares_loop.append(x**2)
print("Loop squares:", squares_loop)
# 2. List comprehension way (same outcome)
squares_comp = [x**2 for x in range(1, 6)]
print("Comp squares:", squares_comp)
# 3. Filtering elements with an 'if' clause (even numbers only)
evens = [n for n in range(1, 11) if n % 2 == 0]
print("Even numbers:", evens)
# 4. String modifications using comprehensions
names = ["alice", "bob", "charlie"]
caps = [name.capitalize() for name in names]
print("Capitalized:", caps)Loop squares: [1, 4, 9, 16, 25]
Comp squares: [1, 4, 9, 16, 25]
Even numbers: [2, 4, 6, 8, 10]
Capitalized: ['Alice', 'Bob', 'Charlie']Implementação passo a passo
- Identifique o corpo do loop e a expressão que você deseja capturar na lista.
- Estruture a compreensão como [expressão para item em iterável].
- Acrescente uma condição if opcional no final para filtrar elementos dinamicamente.
Perguntas frequentes
Posso usar instruções if-else dentro de uma compreensão de lista?
Sim! Coloque a cláusula if-else antes do loop for: [x if x > 0 else 0 for x in data].
Quais são as diferenças entre compreensões de lista e expressões geradoras?
As compreensões de lista usam colchetes e retornam uma lista completa instantaneamente. As expressões geradoras usam parênteses e retornam um objeto gerador lento, que economiza memória para grandes conjuntos de dados.
Tópicos Relacionados
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.
Como remover duplicatas de uma lista em PythonAprenda como remover duplicatas de uma lista em Python enquanto mantém ou ignora a ordem. Compare conversões de conjunto, chaves de ditado e métodos de loop.
Como usar funções Lambda em PythonAprenda como usar funções lambda em Python. Domine funções anônimas, retornos de chamada embutidos e classificação de dados de listas com chaves lambda.
Recursos Python recomendados
Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.
Listas Python
Aprenda tudo sobre listas Python. Descubra como criar, fatiar, modificar e iterar nativamente arrays em Python.
Folha de referências de métodos de lista Python
Guia de referência rápida para operações de lista Python. Domine a adição, inserção, remoção, classificação e fatiamento de elementos.
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.