Skip to main content

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ísticaDescrição
AnônimaNão precisa (nem deve) ter nome.
Expressão únicaSó pode conter uma expressão, sem comandos (if, while, for, etc.) fora dela.
Retorno implícitoO valor da expressão é retornado automaticamente.
EscopoObedece à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: print e return) dentro de uma lambda.