Expresiones Lambda en Python: Una Guía Completa

| Última modificación: 3 de febrero de 2025 | Tiempo de Lectura: 2 minutos

Las expresiones lambda en Python son una alternativa concisa para definir funciones anónimas. Se utilizan cuando se requiere una función pequeña y rápida sin necesidad de asignarle un nombre formal. Aunque tienen limitaciones en cuanto a la cantidad de expresiones que pueden contener, resultan sumamente útiles en situaciones específicas, como la manipulación de listas o el uso con funciones integradas como map(), filter() y sorted().

expresiones lambda python


¿Qué son las expresiones Lambda en Python?

Las funciones lambda son una versión compacta de las funciones tradicionales definidas con def. Su estructura permite definir funciones en una sola línea, favoreciendo un código más limpio y conciso. Se utilizan especialmente en programación funcional y cuando se busca evitar la sobrecarga de definir funciones con nombres innecesarios.

Sintaxis de una función lambda

lambda argumentos: expresión

Ejemplo básico

square = lambda x: x ** 2
print(square(3)) # Resultado: 9

Esta expresión es equivalente a:

def square(num):
return num ** 2

Ambas funciones devuelven el cuadrado de un número, pero la versión lambda es más compacta.

Aplicaciones Prácticas

Las expresiones lambda son especialmente útiles en combinación con funciones integradas de Python:

Uso con map() para transformar listas

numeros = [1, 2, 3, 4, 5]
cuadrados = list(map(lambda x: x**2, numeros))
print(cuadrados) # [1, 4, 9, 16, 25]

map() aplica la función lambda a cada elemento de la lista.

Uso con filter() para filtrar elementos

numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
impares = list(filter(lambda x: x % 2 != 0, numeros))
print(impares) # [1, 3, 5, 7, 9]

Aquí, filter() selecciona solo los números impares de la lista.

Uso con sorted() y una clave personalizada

mi_dicc = {"A": 1, "B": 2, "C": 3}
ordenado = sorted(mi_dicc, key=lambda x: mi_dicc[x] % 3)
print(ordenado) # ['C', 'A', 'B']

La función lambda determina el orden basado en el residuo de cada valor al dividirlo entre 3.

Ventajas y Limitaciones

Ventajas

  • Código más limpio y compacto.
  • Útil en funciones de orden superior (map(), filter(), sorted()).
  • Evita la necesidad de definir funciones con def para operaciones simples.

Limitaciones

  • Solo puede contener una expresión, lo que restringe su uso en estructuras de control complejas.
  • Puede afectar la legibilidad en códigos extensos.

Conclusión

Las expresiones lambda en Python proporcionan una manera eficiente y elegante de definir funciones en una sola línea. Aunque no reemplazan completamente a las funciones tradicionales, son herramientas clave en la programación funcional y en situaciones donde se requiere un código más compacto y expresivo.

Si buscas optimizar tu código sin sacrificar claridad, aprender a utilizar lambda en Python es un excelente punto de partida.

Posts más leídos