En Python, las funciones lambda (también llamadas funciones anónimas) son una forma concisa de definir funciones pequeñas en una sola línea.
Una función lambda es una función sin nombre
que se define utilizando la palabra clave lambda. Son útiles cuando se necesita
una función simple, generalmente de una sola expresión, y no se quiere escribir una función
completa con def.
lambda argumentos: expresión
# Con def
def sumar(a, b):
return a + b
# Con lambda
sumar = lambda a, b: a + b
print(sumar(2, 3)) # Resultado: 5
Las funciones lambda son frecuentemente usadas como argumentos de otras funciones:
# Usando lambda dentro de sorted() para ordenar por el segundo elemento de la tupla
datos = [(1, 3), (2, 1), (4, 2)]
ordenado = sorted(datos, key=lambda x: x[1])
print(ordenado) # [(2, 1), (4, 2), (1, 3)]
| Característica | Funciones lambda | Funciones normales (def) |
|---|---|---|
| Tienen nombre propio | No | Sí |
| Pueden tener múltiples líneas | No | Sí |
| Se usan en expresiones simples | Sí | Sí |
| Admite argumentos por defecto | Sí | Sí |
| Admite *args y **kwargs | Sí | Sí |
# Lambda sin asignar a una variable
print((lambda x, y: x * y)(3, 4)) # Resultado: 12
# Lambda con argumento por defecto
f = lambda x, y=2: x * y
print(f(5)) # Resultado: 10
# Pasando argumentos nombrados
f = lambda x, y: x + y
print(f(x=1, y=3)) # Resultado: 4
# Usando *args
f = lambda *args: sum(args)
print(f(1, 2, 3)) # Resultado: 6
# Usando **kwargs
f = lambda **kwargs: kwargs["a"] + kwargs["b"]
print(f(a=5, b=7)) # Resultado: 12
Aunque una función lambda solo puede tener una expresión, puede devolver múltiples valores empaquetados en una tupla:
f = lambda x, y: (x + y, x * y)
print(f(3, 4)) # Resultado: (7, 12)
def solo
para una operación simple.