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.
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.
# 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)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
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 usar a compreensão de lista em PythonAprenda como usar compreensões de lista em Python. Escreva loops concisos, aplique filtros condicionais e crie matrizes com sintaxe visual limpa.
Recursos Python recomendados
Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.
Funções Python
Domine as funções do Python. Aprenda como escrever código reutilizável usando def, definir argumentos, retornar valores e compreender o escopo local e globalmente.
Folha de referências das funções do módulo matemático Python
Guia de referência rápida para a biblioteca padrão matemática do Python. Aprenda a usar funções trigonométricas, logarítmicas, de arredondamento e aritméticas.
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.