1 usuario conectado

Funciones lambda (anónimas) en Python

Comparte esto

Ahora vamos a explorar las funciones lambda (también conocidas como funciones anónimas) en Python. Son una forma concisa de crear pequeñas funciones de una sola expresión sin necesidad de definirlas formalmente con la palabra clave def.

¿Qué son las Funciones Lambda?

Sintaxis de una Función Lambda:

Python
 
lambda argumentos: expresion

Ejemplos de Funciones Lambda:

  1. Una función lambda que suma dos números:

    Python
     
    suma = lambda a, b: a + b
    resultado = suma(5, 3)
    print(resultado)  # Salida: 8
    

    Aquí, lambda a, b: a + b define una función anónima que toma dos argumentos a y b y devuelve su suma. Esta función lambda se asigna a la variable suma, por lo que se puede llamar como cualquier otra función.

  2. Una función lambda sin argumentos que devuelve un valor constante:

    Python
     
    saludo = lambda: "¡Hola desde lambda!"
    mensaje = saludo()
    print(mensaje)  # Salida: ¡Hola desde lambda!
    
  3. Una función lambda con un argumento que lo eleva al cuadrado:

    Python
     
    cuadrado = lambda x: x**2
    resultado = cuadrado(4)
    print(resultado)  # Salida: 16
    

Uso Común de Funciones Lambda:

Las funciones lambda son especialmente útiles cuando se necesitan funciones pequeñas y simples como argumentos para otras funciones, particularmente con funciones de orden superior como map(), filter(), y sorted().

  1. Con map(): Aplica una función a cada elemento de un iterable.

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

    En lugar de definir una función separada para calcular el cuadrado, usamos una función lambda directamente dentro de map().

  2. Con filter(): Filtra los elementos de un iterable basándose en una función que devuelve True o False.

    Python
     
    numeros = [1, 2, 3, 4, 5, 6]
    pares = list(filter(lambda x: x % 2 == 0, numeros))
    print(pares)  # Salida: [2, 4, 6]
    

    Aquí, la función lambda lambda x: x % 2 == 0 verifica si un número es par. filter() aplica esta función a cada número de la lista y devuelve solo los que cumplen la condición (devuelven True).

  3. Con sorted(): Ordena los elementos de un iterable basándose en una función clave.

    Python
     
    palabras = ["manzana", "banana", "cereza"]
    ordenadas_por_longitud = sorted(palabras, key=lambda s: len(s))
    print(ordenadas_por_longitud)  # Salida: ['banana', 'manzana', 'cereza']
    

    La función lambda lambda s: len(s) se utiliza como clave para la ordenación, lo que significa que las palabras se ordenan según su longitud.

Limitaciones de las Funciones Lambda:

Cuándo Usar Funciones Lambda:

En resumen, las funciones lambda son una herramienta poderosa para escribir código Python más conciso y funcional en ciertos escenarios. Sin embargo, para lógica más compleja, las funciones regulares definidas con def suelen ser más apropiadas y legibles. ¿Te gustaría que pasemos al siguiente tema?