AnyCompiler

Funções Lambda

Uma lambda é uma função pequena e sem nome, definida em uma única expressão. Elas existem para situações em que escrever uma função completa com def seria exagero para algo que você vai usar só uma vez, bem onde ela é definida.

square = lambda x: x * x
print(square(5))
Output
25

lambda x: x * x significa "uma função que recebe x e retorna x * x" — funcionalmente idêntica a escrever def square(x): return x * x, só que condensada em uma linha. Lambdas só podem conter uma única expressão, não várias instruções.

Onde as lambdas são realmente usadas

Você vai ver lambdas quase sempre passadas diretamente para funções como map() (transformar cada item) e filter() (manter só os itens que atendem a uma condição), onde definir uma função separada com nome seria uma formalidade desnecessária para algo tão pequeno.

numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x * x, numbers))
print(squared)

evens = list(filter(lambda x: x % 2 == 0, numbers))
print(evens)
Output
[1, 4, 9, 16, 25]
[2, 4]

A seguir: list comprehensions — a alternativa mais idiomática do Python a map() e filter() para exatamente esse tipo de coisa.

Exercício de Prática

Escreva um lambda chamado double que multiplique seu argumento por 2, e depois imprima double(9).