Función Lambda en Python
Supongamos que tenemos una función func,
que toma como parámetros una lista y
un callback. La función creará una nueva
lista a partir de los elementos de la lista original. Al mismo
tiempo, se aplicará el callback a cada uno de los
elementos:
def func(lst, callback):
res = []
for el in lst:
res.append(callback(el))
return res
Ahora creemos una función square,
que elevará al cuadrado el número que se le pase:
def square(num):
return num ** 2
Pasemos a los parámetros de func
una lista numérica y la función square como
callback:
print( func([1, 2, 3], square) )
En la consola se mostrará una nueva lista, que consiste en los cuadrados de los números:
[1, 4, 9]
Sin embargo, este código se puede acortar significativamente
usando la función lambda
- una función anónima, que se llama con
la palabra clave lambda y
se escribe en una sola línea. Por lo tanto, en
la función lambda solo se pueden reescribir
funciones cuyo código ocupa una línea.
La sintaxis de la función lambda se ve así:
lambda parámetro de la función: operación con el parámetro de la función
Reescribamos la función square
usando una función lambda y pasémosla al
parámetro func:
print( func([1, 2, 3], lambda num: num ** 2) )
La función lambda se puede asignar a una variable:
square = lambda num: num ** 2
print( func([1, 2, 3], square) )
Reescriba el siguiente código usando una función lambda:
def func(num, clb):
return clb(num)
def clb(num):
return num + 1
print( func(2, clb) )
Reescriba el siguiente código usando una función lambda:
def func(num, clb1, clb2):
return (clb1(num), clb2(num))
def clb1(num):
return num + 1
def clb2(num):
return num - 1
print( func(2, clb1, clb2) )
Reescriba el siguiente código usando una función lambda:
def func(num1, num2, clb):
res = clb(num1) + num2
return res
def clb(num):
return num ** 3
print(func(2, 6, clb))