1 usuario conectado
Funciones lambda (anónimas) en Python
Funciones lambda (anónimas) en Python
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?
- Anónimas: No tienen un nombre
formal como las funciones definidas con
def
.
- Pequeñas: Generalmente se
utilizan para lógica simple de una sola línea.
- De una sola expresión: El
cuerpo de una función lambda es una única expresión que se evalúa y se
devuelve implícitamente. No pueden contener múltiples sentencias, bucles o
condicionales complejos.
Sintaxis de una Función Lambda:
lambda
: La
palabra clave que indica la creación de una función lambda.
argumentos
:
Una lista de uno o más argumentos (pueden ser posicionales o con nombre),
separados por comas. Pueden no haber argumentos.
:
: Separa los
argumentos de la expresión.
expresion
: La
única expresión que se evalúa y se devuelve como resultado de la función
lambda.
Ejemplos de Funciones Lambda:
-
Una función lambda que suma dos
números:
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.
-
Una función lambda sin argumentos que
devuelve un valor constante:
-
Una función lambda con un argumento
que lo eleva al cuadrado:
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()
.
-
Con map()
:
Aplica una función a cada elemento de un iterable.
En lugar de definir una función separada
para calcular el cuadrado, usamos una función lambda directamente dentro de
map()
.
-
Con filter()
:
Filtra los elementos de un iterable basándose en
una función que devuelve True
o False
.
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
).
-
Con sorted()
:
Ordena los elementos de un iterable basándose en una función clave.
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:
- Solo una expresión: El
cuerpo de una función lambda debe ser una única expresión. No se pueden
incluir múltiples sentencias, asignaciones (excepto en la lista de
argumentos para valores por defecto), bucles (
for
, while
),
ni bloques condicionales (if
, elif
, else
).
- Legibilidad: Para lógica
compleja, una función lambda puede volverse difícil de leer. En tales casos,
es mejor usar una función definida con
def
con un nombre
descriptivo.
Cuándo Usar Funciones Lambda:
- Para operaciones simples y concisas que se
pueden expresar en una sola línea.
- Como argumentos para funciones de orden
superior donde una función pequeña es necesaria para una tarea específica.
- Cuando no se necesita reutilizar la función
en múltiples lugares del código.
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?