🎯 Funções Lambda em Python

Em poucas palavras

Definição técnica ou simplificada do conceito.


📝 Notas e Desenvolvimento


🔗 Conexões e Contexto


📚 Referências e Fontes

Citações Diretas

📂 Outros Conteúdos Preservados

Sintaxe

A sintaxe de uma função lambda é:

lambda argumentos: expressão
  • lambda: 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: 25

Função Lambda com Múltiplos Argumentos

 
### Soma dois números
 
soma = lambda x, y: x + y
print(soma(3, 4))  # Saída: 7

Funçã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 mapfilter 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