Funciones

Funciones Lambda


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.


¿Qué es una función lambda?

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.

Sintaxis básica:
lambda argumentos: expresión
Ejemplo:
# Con def
def sumar(a, b):
    return a + b

# Con lambda
sumar = lambda a, b: a + b
print(sumar(2, 3))  # Resultado: 5
Usos comunes:

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ísticas de las funciones lambda:

Característica Funciones lambda Funciones normales (def)
Tienen nombre propio No
Pueden tener múltiples líneas No
Se usan en expresiones simples
Admite argumentos por defecto
Admite *args y **kwargs

Ejemplos prácticos:

# 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

Devolviendo múltiples valores:

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)

¿Cuándo usar funciones lambda?

Úsalas cuando:
  • Necesitas una función pequeña y rápida.
  • No planeas reutilizarla en muchos lugares.
  • Quieres evitar crear una función con def solo para una operación simple.
Evítalas cuando:
  • La lógica es compleja o incluye varias líneas.
  • El código necesita documentación o claridad.