🎯 Funções Lambda em Python
Em poucas palavras
Definição técnica ou simplificada do conceito.
📝 Notas e Desenvolvimento
🔗 Conexões e Contexto
- Atlas: MdC - Programação
- Notas Relacionadas:
📚 Referências e Fontes
Links Externos
Citações Diretas
📂 Outros Conteúdos Preservados
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