Funciones lambda

Python intermedio para desarrolladores

Jasmin Ludolf

Senior Data Science Content Developer

Funciones simples

def average(values):
    average_value = sum(values) / len(values)
    return average_value
Python intermedio para desarrolladores

Funciones lambda

  • Palabra clave lambda
    • Representa una función anónima

 

lambda
Python intermedio para desarrolladores

Funciones lambda

  • Palabra clave lambda
    • Representa una función anónima

 

lambda arguments
Python intermedio para desarrolladores

Funciones lambda

  • Palabra clave lambda
    • Representa una función anónima

 

lambda arguments:
Python intermedio para desarrolladores

Funciones lambda

  • Palabra clave lambda
    • Representa una función anónima

$$

lambda arguments: expression
  • Por convención se usa x para un solo argumento
  • expression equivale al cuerpo de la función
  • No requiere return

$$

  • Se puede guardar en una variable
Python intermedio para desarrolladores

Crear una función lambda

# Función lambda de promedio
print(lambda x: sum(x) / len(x))



<function <lambda> at 0x7f11ab813d80>
# Función de promedio personalizada
def average(x):
    return sum(x) / len(x)  

print(average)
<function average at 0x7f11ab813ec0>
Python intermedio para desarrolladores

Usar funciones lambda

# Obtener el promedio
(lambda x: sum(x) / len(x))
Python intermedio para desarrolladores

Usar funciones lambda

# Obtener el promedio
(lambda x: sum(x) / len(x))([3, 6, 9])

$$

$$

# Imprimir el promedio
print((lambda x: sum(x) / len(x))([3, 6, 9]))
6.0
Python intermedio para desarrolladores

Guardar y llamar a una lambda

# Guardar una función lambda en una variable
average = lambda x: sum(x) / len(x)

# Llamar a la función average print(average([3, 6, 9]))
6.0
Python intermedio para desarrolladores

Varios parámetros

# Función lambda con dos argumentos
power = lambda x, y: x**y


# Elevar 2 a la potencia de 3 print(power(2, 3))
8
Python intermedio para desarrolladores

Lambdas con iterables

  • map() aplica una función a todos los elementos de un iterable
names = ["john", "sally", "leah"]

# Aplicar una lambda dentro de map() capitalize = map(lambda x: x.capitalize(), names)
print(capitalize)
<map object at 0x7fb200529c10>
# Convertir a lista
print(list(capitalize))
['John', 'Sally', 'Leah']
Python intermedio para desarrolladores

Funciones personalizadas vs. lambda

Escenario Tipo de función
Tarea compleja Personalizada
Misma tarea varias veces Personalizada
Se usa una vez Lambda
Tarea simple Lambda
Python intermedio para desarrolladores

¡Vamos a practicar!

Python intermedio para desarrolladores

Preparing Video For Download...