Lambda | Python
- Lambda | Python
🧩 O que é uma função lambda
Uma lambda é uma forma curta de criar funções pequenas, geralmente sem nome, e em uma única linha.
lambda argumentos: expressão
Ela retorna automaticamente o valor da expressão, sem precisar de return.
Exemplo básico:
soma = lambda x, y: x + y
print(soma(2, 3)) # 5
Essa linha é equivalente a:
def soma(x, y):
return x + y
⚙️ Onde se usa lambda
Lambdas são úteis quando você precisa passar uma função como argumento rapidamente, sem precisar defini-la com def.
🔸 Exemplo com sorted()
alunos = [
("João", 8),
("Maria", 10),
("Pedro", 6)
]
# Ordenar pela nota
ordenados = sorted(alunos, key=lambda aluno: aluno[1], reverse=True)
print(ordenados)
# [('Maria', 10), ('João', 8), ('Pedro', 6)]
🔸 Exemplo com map, filter e reduce
numeros = [1, 2, 3, 4, 5]
# dobrar os números
dobrados = list(map(lambda x: x * 2, numeros))
print(dobrados) # [2, 4, 6, 8, 10]
# filtrar pares
pares = list(filter(lambda x: x % 2 == 0, numeros))
print(pares) # [2, 4]
🧠 Características das lambda
| Característica | Descrição |
|---|---|
| Anônima | Não precisa (nem deve) ter nome. |
| Expressão única | Só pode conter uma expressão, sem comandos (if, while, for, etc.) fora dela. |
| Retorno implícito | O valor da expressão é retornado automaticamente. |
| Escopo | Obedece às regras normais de escopo de variáveis. |
🔥 Exemplo com lambda dentro de outra função
def criar_multiplicador(n):
return lambda x: x * n
dobrar = criar_multiplicador(2)
triplicar = criar_multiplicador(3)
print(dobrar(5)) # 10
print(triplicar(5)) # 15
Aqui lambda captura o valor de n do contexto — ou seja, funciona como um closure.
🚫 Cuidado
- Evite lambdas muito complexas — se a função tiver mais de uma linha ou lógica elaborada, use
def. - Não é possível colocar múltiplas instruções (ex:
printereturn) dentro de umalambda.