single
Funciones Lambda
Desliza para mostrar el menú
Las funciones lambda son funciones anónimas, es decir, no tienen nombre. Se crean utilizando la palabra clave lambda y suelen emplearse para definir funciones cortas donde se puede especificar una función en el momento.
La sintaxis básica de una función lambda es la siguiente:
lambda arguments: expression
lambda: palabra clave que indica el inicio de la definición de una función lambda;arguments: lista de argumentos que recibe la función;expression: expresión que se ejecuta cuando se llama a la función. El resultado de la expresión se devuelve como valor de la función.
La característica principal de las funciones lambda es su sintaxis concisa. Son útiles cuando se necesita definir una función simple sin escribir mucho código.
Argumentos únicos y múltiples
Una función lambda puede recibir uno o más argumentos:
1234567# Single argument square = lambda x: x**2 print(square(5)) # 25 # Multiple arguments add = lambda x, y: x + y print(add(3, 5)) # 8
Lógica condicional en funciones lambda
Se puede utilizar una expresión ternaria para agregar lógica condicional dentro de una lambda:
123is_even = lambda x: "even" if x % 2 == 0 else "odd" print(is_even(4)) # "even" print(is_even(7)) # "odd"
Uso de lambda con funciones integradas
Un caso de uso común es combinar funciones lambda con funciones integradas como map() y filter():
123456789prices = [100, 200, 300] # Apply 10% discount to each price discounted = list(map(lambda price: price * 0.9, prices)) print(discounted) # [90.0, 180.0, 270.0] # Keep only prices above 150 expensive = list(filter(lambda price: price > 150, prices)) print(expensive) # [200, 300]
También se puede usar max() dentro de una lambda para manejar casos límite directamente en la expresión:
123safe_value = lambda x: max(x, 0) # Returns 0 if x is negative print(safe_value(-5)) # 0 print(safe_value(10)) # 10
La función max(a, b) compara dos números y devuelve el mayor. Cuando se empareja una variable con 0, como en max(x, 0), actúa como una red de seguridad contra números negativos:
-
Si x es positivo (por ejemplo, 100),
max(100, 0)devuelve 100 porque 100 es mayor que 0. -
Si x es negativo (por ejemplo, -50),
max(-50, 0)devuelve 0 porque 0 es mayor que -50.
Esto elimina la necesidad de una declaración if-else compleja cuando se desea forzar que cualquier cantidad negativa o inválida se convierta instantáneamente en 0.
Las funciones lambda son más adecuadas para lógica corta de una sola expresión. Si la función requiere varias líneas o lógica compleja, es preferible utilizar una función regular def.
Desliza para comenzar a programar
Existe una lista de precios (prices), y se debe implementar una expresión lambda que tome un precio como parámetro y descuente el 13% de impuesto.
- Definir una expresión lambda utilizando la palabra clave
lambda. - La expresión lambda debe tomar un parámetro (
price). - Si el
pricees negativo, se considera inválido y debe devolver 0 utilizando la funciónmax()directamente dentro de la expresión lambda. - La lambda debe verificar primero el precio y luego descontar el 13% del monto válido.
- Utilizar una comprensión de listas para aplicar
apply_taxa cada elemento enprices.
Solución
¡Gracias por tus comentarios!
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla