Como usar funções Lambda em Python (funções anônimas)

Aprenda 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.

Experimente esta solução no Editor

Visão geral

Em Python, as funções são cidadãs de primeira classe, o que significa que podem ser atribuídas a variáveis, passadas como argumentos para outras funções e retornadas de funções. Embora as funções padrão sejam declaradas usando a palavra-chave `def`, o Python também fornece uma sintaxe abreviada para criar funções inline anônimas: funções `lambda`.

Uma função lambda é definida com a palavra-chave `lambda`, seguida por uma lista de argumentos, dois pontos e uma única expressão. A sintaxe é `argumentos lambda: expressão`. Ao contrário das funções `def`, lambdas não requerem uma instrução `return`; o resultado da expressão é retornado automaticamente. Eles estão limitados a uma única linha lógica, tornando-os ideais para operações simples e pontuais.

As funções Lambda são mais comumente usadas como argumentos para funções de ordem superior, como `sorted()`, `map()` e `filter()`. Por exemplo, você pode passar uma função lambda para o argumento `key` de `sorted()` para definir critérios de classificação personalizados ou usá-los como funções de retorno de chamada leves dentro de aplicativos gráficos ou orientados a eventos.

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

Este script demonstra a construção de funções anônimas leves usando lambda.

lambda_functions.py
Experimente no Editor
# 1. Simple lambda function assigned to a variable
double = lambda x: x * 2
print("Double of 5:", double(5))

# 2. Multi-argument lambda
add = lambda x, y: x + y
print("Sum of 3 + 4:", add(3, 4))

# 3. Using lambda as a sorting key (sorting by age)
people = [
    {"name": "Alice", "age": 28},
    {"name": "Bob", "age": 22},
    {"name": "Charlie", "age": 35}
]
people.sort(key=lambda person: person["age"])
print("Sorted by age:", people)
Saída terminal
Double of 5: 10
Sum of 3 + 4: 7
Sorted by age: [{'name': 'Bob', 'age': 22}, {'name': 'Alice', 'age': 28}, {'name': 'Charlie', 'age': 35}]

Implementação passo a passo

  • Escreva a palavra-chave lambda seguida pelos nomes dos parâmetros separados por vírgula.
  • Coloque dois pontos, seguido pela expressão única que você deseja avaliar e retornar.
  • Passe o lambda diretamente como retorno de chamada para funções como sorted(), map() ou filter().

Perguntas frequentes

Uma função lambda pode conter loops ou múltiplas instruções?

Não, as funções lambda em Python são estritamente limitadas a uma única expressão. Se você precisar de lógica complexa, loops ou atribuições de variáveis, deverá definir uma função padrão usando def.

Devo atribuir funções lambda a variáveis?

Geralmente não. As diretrizes do PEP 8 sugerem o uso de uma instrução def padrão em vez de atribuir um lambda a uma variável, pois as funções padrão fornecem melhores nomes de rastreamento de pilha.

Tópicos Relacionados

Recursos Python recomendados

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