Folha de dicas de compreensão do Python

Escreva listas, dicionários, conjuntos e compreensões de gerador concisas e legíveis em Python.

Listar e definir compreensões

Criação de sequências e conjuntos inline usando loops de açúcar sintáticos.

Método/FunçãoSintaxeDescrição
List Comprehension[x * 2 for x in my_list]Constrói uma nova lista aplicando expressões em elementos de um iterável.
Conditional List[x for x in my_list if x > 0]Aplica um predicado de filtro, mantendo apenas os elementos que satisfazem a condição.
Nested Loops[x + y for x in list1 for y in list2]Achata operações aninhadas. Executa loops internos para cada iteração do loop externo.
Set Comprehension{x for x in my_list}Gera um conjunto, aplicando a desduplicação automaticamente.

Compreensões de dicionário e gerador

Gerando mapeamentos e fluxos de avaliação lenta em linha.

Método/FunçãoSintaxeDescrição
Dict Comprehension{k: v for k, v in pairs}Constrói um dicionário embutido.
Conditional Dict{k: v for k, v in pairs if k is not None}Constrói um dicionário ignorando valores indesejados.
Generator Expression(x ** 2 for x in range(10))Retorna um objeto iterador gerador lento. Avalia os itens um de cada vez para conservar a memória.

Script de demonstração interativo

run_all_cheat_methods.py
Executar no Editor
# List Comprehension
[x * 2 for x in my_list]

# Conditional List
[x for x in my_list if x > 0]

# Nested Loops
[x + y for x in list1 for y in list2]

# Set Comprehension
{x for x in my_list}

# Dict Comprehension
{k: v for k, v in pairs}

# Conditional Dict
{k: v for k, v in pairs if k is not None}

# Generator Expression
(x ** 2 for x in range(10))

Perguntas frequentes

Quando devo evitar o uso de compreensões de lista?

Evite compreensões de lista se elas forem excessivamente complexas ou tiverem vários loops aninhados, pois isso reduz a legibilidade do código.

Qual é a diferença entre uma compreensão de lista e uma expressão geradora?

As compreensões de lista são avaliadas imediatamente e constroem a lista na memória, enquanto as expressões geradoras produzem itens preguiçosamente sob demanda, economizando memória.

Tópicos Relacionados

Recursos Python recomendados

Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.