Curso de python nivel medio

¿Qué es una función lambda?

Una función lambda en Python es una función anónima, es decir, una función sin nombre. A diferencia de las funciones normales que se definen usando def, las funciones lambda se definen en una sola línea usando la palabra clave lambda. Son útiles cuando necesitas una función simple y pequeña que se usará solo una vez o en un contexto específico.

¿Cómo se define una función lambda?

La sintaxis básica de una función lambda es:

1lambda argumentos: expresión
  • argumentos: Son los parámetros que la función lambda toma.
  • expresión: Es lo que la función devuelve. La expresión se evalúa y se devuelve automáticamente.

Ejemplo básico de una función lambda

Supongamos que queremos crear una función que sume dos números. Con una función normal lo harías así:

1def suma(a, b):
2    return a + b
3
4resultado = suma(3, 5)
5print(resultado)
Salida de Consola!:
8

Ahora, usando una función lambda, lo harías de la siguiente manera:

1suma = lambda a, b: a + b
2
3resultado = suma(3, 5)
4print(resultado)
Salida de Consola!:
8
  • ¿Qué hace este código?:
    • lambda a, b: a + b define una función anónima que toma dos argumentos (a y b) y devuelve su suma.
    • La función lambda se asigna a la variable suma, que luego se usa como si fuera una función normal.

¿Dónde se usan las funciones lambda?

Las funciones lambda se usan comúnmente en funciones de orden superior, como map(), filter() y sorted(), donde necesitas pasar una función simple como argumento.

Ejemplo usando map() con una función lambda

Supongamos que tienes una lista de números y quieres duplicar cada número en la lista. Puedes usar map() con una función lambda para hacerlo:

1numeros = [1, 2, 3, 4, 5]
2
3# Usar map() con una función lambda para duplicar cada número
4duplicados = list(map(lambda x: x * 2, numeros))
5
6print(duplicados)
Salida de Consola!:
[2, 4, 6, 8, 10]
  • ¿Qué hace este código?:
    • lambda x: x * 2 es una función lambda que toma un número x y devuelve el doble de x.
    • map() aplica esta función a cada elemento de la lista numeros.
    • list() convierte el resultado de map() en una lista.

Ejemplo usando filter() con una función lambda

Supongamos que quieres filtrar una lista para obtener solo los números pares. Puedes usar filter() con una función lambda para hacerlo:

1numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2
3# Usar filter() con una función lambda para obtener solo los números pares
4pares = list(filter(lambda x: x % 2 == 0, numeros))
5
6print(pares)
Salida de Consola!:
[2, 4, 6, 8, 10]
  • ¿Qué hace este código?:
    • lambda x: x % 2 == 0 es una función lambda que devuelve True si x es par.
    • filter() aplica esta función a cada elemento de la lista numeros y solo incluye aquellos donde la función devuelve True.
    • list() convierte el resultado de filter() en una lista.

Ejemplo usando sorted() con una función lambda

Supongamos que tienes una lista de palabras y quieres ordenarlas por su longitud. Puedes usar sorted() con una función lambda para hacerlo:

1palabras = ["manzana", "kiwi", "banana", "cereza"]
2
3# Usar sorted() con una función lambda para ordenar las palabras por su longitud
4ordenadas = sorted(palabras, key=lambda x: len(x))
5
6print(ordenadas)
Salida de Consola!:
['kiwi', 'banana', 'cereza', 'manzana']
  • ¿Qué hace este código?:
    • lambda x: len(x) es una función lambda que toma una palabra y devuelve su longitud.
    • sorted() ordena las palabras en la lista palabras según su longitud.

Conclusión

Las funciones lambda en Python son una herramienta poderosa para definir funciones pequeñas y anónimas de manera concisa. Son especialmente útiles cuando necesitas pasar una función simple como argumento a otra función. ¡Practica usando funciones lambda en diferentes contextos para familiarizarte con su uso y ver cómo pueden hacer tu código más limpio y eficiente!

  • Loading...