Funciones lambda
1. 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.
2. 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.
3. 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.
4. 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.
5. 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.
6. 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.
7. 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.
Resumen del tema
Conceptos clave #
- Funciones Anónimas (
lambda): funciones pequeñas de una sola línea con sintaxislambda args: expresionque retornan implícitamente el resultado de la expresión. - Limitaciones de Diseño: sólo admiten una única expresión y no pueden contener declaraciones (
return,assert,while, asignaciones). - Uso en Funciones de Orden Superior: idóneas como callbacks breves en
map(),filter(), y como claves de ordenación (key=lambda x: ...) ensorted()o.sort().
Qué debes recordar #
Las funciones lambda (lambda x: x * 2) son funciones anónimas inline ideales para transformaciones y filtros rápidos como argumentos de funciones de orden superior.