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.
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)
[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).