AnyCompiler

Funciones Lambda

Una lambda es una función pequeña y sin nombre, definida en una sola expresión. Existen para situaciones en las que escribir una función completa con def sería excesivo para algo que solo vas a usar una vez, justo donde se define.

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

lambda x: x * x significa "una función que toma x y devuelve x * x" — funcionalmente idéntica a escribir def square(x): return x * x, solo que condensada en una línea. Las lambdas solo pueden contener una única expresión, no varias sentencias.

Dónde se usan realmente las lambdas

Verás lambdas casi siempre pasadas directamente a funciones como map() (transformar cada elemento) y filter() (quedarte solo con los elementos que cumplen una condición), donde definir una función aparte con nombre sería una formalidad innecesaria para algo tan pequeño.

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]

Siguiente: comprensiones de listas — la alternativa más idiomática de Python a map() y filter() para exactamente este tipo de cosas.

Ejercicio de práctica

Escribe un lambda llamado double que multiplique su argumento por 2, y luego imprime double(9).