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 + bdefine una función anónima que toma dos argumentos (ayb) 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 * 2es una función lambda que toma un númeroxy devuelve el doble dex.map()aplica esta función a cada elemento de la listanumeros.list()convierte el resultado demap()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 == 0es una función lambda que devuelveTruesixes par.filter()aplica esta función a cada elemento de la listanumerosy solo incluye aquellos donde la función devuelveTrue.list()convierte el resultado defilter()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 listapalabrassegú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...