🎯 Funções Lambda em Python
Em poucas palavras
Funções anônimas definidas numa linha com a palavra-chave
lambda, uma lista de argumentos e uma única expressão que é avaliada e retornada. São muito usadas como argumento de funções de ordem superior comomap,filteresort.
📝 Notas e Desenvolvimento
Sintaxe
A sintaxe de uma função lambda é:
lambda argumentos: expressãolambda: Palavra-chave para definir uma função lambda.argumentos: Lista de argumentos (separados por vírgulas, se houver mais de um).expressão: Uma única expressão que é avaliada e retornada pela função.
Exemplos
Função Lambda Simples
### Eleva um número ao quadrado
square = lambda x: x * x
print(square(5)) # Saída: 25Função Lambda com Múltiplos Argumentos
### Soma dois números
soma = lambda x, y: x + y
print(soma(3, 4)) # Saída: 7Função Lambda sem Argumentos
### Retorna uma string
saudacao = lambda: "Olá!"
print(saudacao()) # Saída: Olá!Comparação com Função def
A função lambda acima é equivalente a:
def saudacao_def():
return "Olá!"Uso com Funções de Ordem Superior
Funções lambda são frequentemente usadas como argumentos para Funções de Ordem Superior em Python, como map, filter e sort.
Exemplo com sort
people = [
{"name": "Harry", "house": "Gryffindor"},
{"name": "Cho", "house": "Ravenclaw"},
{"name": "Draco", "house": "Slytherin"}
]
### Ordena a lista de pessoas pelo nome
people.sort(key=lambda person: person["name"])
print(people)
### Saída:
### [{'name': 'Cho', 'house': 'Ravenclaw'}, {'name': 'Draco', 'house': 'Slytherin'}, {'name': 'Harry', 'house': 'Gryffindor'}]
Neste exemplo, a função sort usa uma função lambda para definir a chave de ordenação. A função lambda recebe um dicionário person como entrada e retorna o valor da chave "name". Isso faz com que a lista seja ordenada alfabeticamente pelo nome das pessoas.
Ordenando por Casa
Para ordenar por casa, basta mudar a função lambda:
people.sort(key=lambda person: person["house"])
print(people)
### Saída:
### [{'name': 'Harry', 'house': 'Gryffindor'}, {'name': 'Cho', 'house': 'Ravenclaw'}, {'name': 'Draco', 'house': 'Slytherin'}]Vantagens e Desvantagens
- Vantagens: Concisão, conveniência para funções simples e de uso único.
- Desvantagens: Legibilidade limitada para lógicas complexas, falta de nome (dificulta o debugging).
:: Referência: :: Site W3schools sobre funções lambda em Python