Las funciones lambda, también conocidas como funciones anónimas, son una forma alternativa y concisa de definir funciones. Como su nombre indica (diferencia de las funciones regulares) las funciones lambda no tienen nombre.
En general, son funciones pequeñas y se emplean en contextos donde se necesita una función de forma temporal (por ejemplo, en el uso como parámetros de otras funciones).
Si quieres aprender más sobre Funciones lambda
consulta el Curso de Introducción a la Programación leer más
Funciones lambda
En Python, las funciones Lambda se definen utilizando la palabra clave lambda
seguida de una lista de parámetros, seguida de dos puntos (:
) y una expresión.
lambda parametros: expresion
Por ejemplo, podemos definir una función lambda que calcule el cuadrado de un número de la siguiente forma:
suma = lambda x: x * x
Esta función lambda
- Toma un argumento
x
- Retorna el resultado de
x * x
.
Funciones lamba con múltiples argumentos
En este ejemplo, suma
es una función lambda que toma dos argumentos x
e y
y devuelve la suma de ambos.
# Sintaxis: lambda argumentos: expresión
suma = lambda x, y: x + y
print(suma(3, 5)) # Output: 8
Ejemplos prácticos
Vamos a ver algunos ejemplos de cómo se utiliza la sintaxis de las funciones lambda en Python:
Suma de dos números
En este ejemplo, definimos una función lambda llamada suma
que toma dos argumentos x
e y
y devuelve su suma.
suma = lambda x, y: x + y
print(suma(3, 5)) # Output: 8
Filtrado de una lista
Las funciones lambda son especialmente útiles cuando necesitamos pasar una función como argumento a otra función.
En este ejemplo, utilizamos una función lambda dentro de la función filter()
para filtrar los números pares de una lista.
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
pares = list(filter(lambda x: x % 2 == 0, numeros))
print(pares) # Output: [2, 4, 6, 8, 10]
Mapeo de una lista
En este ejemplo, utilizamos una función lambda dentro de la función map()
para calcular el cuadrado de cada número en una lista.
numeros = [1, 2, 3, 4, 5]
cuadrados = list(map(lambda x: x ** 2, numeros))
print(cuadrados) # Output: [1, 4, 9, 16, 25]
Funciones lambda vs funciones definidas
Las funciones lambda son útiles cuando necesitamos una función rápida para realizar una operación simple. Se suelen utilizar en combinación con funciones de orden superior, como map()
, filter()
, y reduce()
.
- Limitaciones de la Sintaxis: Las funciones lambda están limitadas a una sola expresión y no pueden contener múltiples declaraciones o líneas de código.
- Legibilidad: Las funciones lambda pueden afectar la legibilidad del código si se utilizan en exceso o en situaciones complicadas.
- Debugging: Puede ser más difícil depurar funciones lambda en comparación con funciones con nombres explícitos.
En resumen, que son muy útiles para lo que son, pero no las uses tampoco a lo loco 😉