Saltar a contenido

Funciones Lambda: El Poder de la Inmediatez

Una Función Lambda es una pequeña función anónima que puede tomar cualquier número de argumentos, pero solo puede tener una sola expresión. Su objetivo no es reemplazar a las funciones normales, sino servir como una herramienta rápida para tareas sencillas y temporales.


Sintaxis y Estructura

La estructura de una función lambda es minimalista:

lambda argumentos : expresión

Diferencias clave con def:

  1. Sin nombre: No necesitan una etiqueta para existir.
  2. Una sola línea: No admiten bloques de código complejos ni múltiples líneas.
  3. Retorno implícito: No usan la palabra return; el resultado de la expresión se devuelve automáticamente.

¿Cuándo deberías usar Lambdas?

El uso real de las lambdas no es guardarlas en variables (para eso es mejor usar def), sino pasarlas como argumentos a otras funciones. Son especialmente útiles con:

1. El método .sort() y sorted()

Permiten definir criterios de ordenamiento personalizados. Por ejemplo, ordenar una lista de nombres por su última letra.

2. Funciones de Orden Superior

Python tiene funciones integradas que esperan otra función como entrada: * map(): Aplica una lógica a cada elemento de una lista. * filter(): Selecciona elementos que cumplen una condición.


Ventajas y Limitaciones

  • Ventaja: Reduce el "ruido" en el código al evitar definir funciones que solo usarás una vez.
  • Limitación: Si la lógica requiere bucles (for, while) o múltiples pasos, una lambda se vuelve ilegible y es mejor usar una función tradicional.

Principio de Python: Si una lambda es difícil de leer, entonces es una mala lambda. La claridad siempre es primero.


Reto: El Transformador de Datos

Vas a trabajar con una lista de números. Tu misión es usar funciones lambda para transformar estos datos de forma masiva.

Instrucciones: 1. Tienes la lista numeros = [1, 2, 3, 4, 5, 6]. 2. Crea la variable dobles usando la función map() y una lambda que multiplique cada número por 2. (Ejemplo: list(map(lambda..., numeros))). 3. Crea la variable solo_pares usando la función filter() y una lambda que verifique si el número es par (n % 2 == 0).

# Usa funciones anónimas: