Funções Python Lambda: Guia de funções anônimas

Aprenda como escrever funções lambda anônimas em Python. Domine padrões de programação funcional usando map(), filter() e sorted() com sintaxe lambda.

Experimente no Editor

Visão geral

Em Python, as funções lambda – também conhecidas como funções anônimas – são funções pequenas, rápidas e de uma linha que não requerem a palavra-chave `def` padrão ou um nome formal. Eles são destinados ao uso rápido e temporário, permitindo que você passe a lógica funcional como um argumento diretamente embutido. Isso torna seu código mais compacto, reduzindo a sobrecarga de escrever funções auxiliares completas que são chamadas apenas em um local.

A sintaxe de uma função lambda é simples: `argumentos lambda: expressão`. Ao contrário das funções padrão, um lambda não possui uma instrução `return` explícita; a expressão é avaliada e retornada automaticamente. Além disso, as funções lambda são restritas a uma única expressão, o que significa que você não pode escrever loops, atribuições ou blocos de condições complexos de várias linhas dentro delas, impondo uma abordagem limpa e funcional.

As funções Lambda são comumente usadas em combinação com funções integradas de ordem superior, como `map()` (que aplica uma função a cada item em uma lista), `filter()` (que retém os itens que correspondem a uma condição) e `sorted()` (que classifica os itens usando uma chave de classificação personalizada). Por exemplo, classificar uma lista de dicionários por uma chave de dicionário específica é muito fácil ao usar um lambda como chave de classificação. Compreender as funções lambda fornece uma ferramenta vital para escrever código Python limpo.

Saída de código e execução

Classificando listas de dicionários complexos e filtrando conjuntos de dados usando funções anônimas embutidas.

lambda_demo.py
Experimente no Editor
# Sorting using lambda
students = [
    {"name": "Alice", "grade": 88},
    {"name": "Bob", "grade": 95},
    {"name": "Charlie", "grade": 90}
]

# Sort students by grade (descending)
sorted_students = sorted(students, key=lambda s: s["grade"], reverse=True)
print("Sorted students by grade:")
for student in sorted_students:
    print(f"- {student['name']}: {student['grade']}")

# Filtering using lambda
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
odd_numbers = list(filter(lambda x: x % 2 != 0, numbers))
print(f"\nOdd numbers: {odd_numbers}")
Saída terminal
Sorted students by grade:
- Bob: 95
- Charlie: 90
- Alice: 88

Odd numbers: [1, 3, 5, 7]

Implementação passo a passo

  • Passando critérios de classificação personalizados para list.sort() e sorted()
  • Aplicando transformações inline em pipelines de ciência de dados
  • Definindo retornos de chamada rápidos em aplicativos de UI orientados a eventos

Perguntas frequentes

Uma função lambda pode receber vários argumentos?

Sim, você pode definir vários argumentos separados por vírgulas, por exemplo, lambda x, y: x + y.

Por que as funções lambda são chamadas de anônimas?

Porque elas são criadas sem uma ligação de nome, ao contrário das funções def que registram um nome específico no namespace local.

Tópicos Relacionados

Recursos Python recomendados

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