Lambda-Funktion in Python
Angenommen, wir haben eine Funktion func,
die als Parameter eine Liste und einen
Callback entgegennimmt. Die Funktion wird eine neue
Liste aus den Elementen der ursprünglichen Liste erstellen. Dabei wird
auf jedes Element der Callback angewendet:
def func(lst, callback):
res = []
for el in lst:
res.append(callback(el))
return res
Erstellen wir nun eine Funktion square,
die die ihr übergebene Zahl quadriert:
def square(num):
return num ** 2
Lassen Sie uns func eine
Zahlenliste und die Funktion square als
Callback übergeben:
print( func([1, 2, 3], square) )
In der Konsole wird eine neue Liste ausgegeben, die aus den Quadraten der Zahlen besteht:
[1, 4, 9]
Dieser Code kann jedoch erheblich
verkürzt werden, indem man eine Lambda-Funktion
verwendet - eine anonyme Funktion, die mit
dem Schlüsselwort lambda aufgerufen wird und
in einer Zeile geschrieben wird. Daher können in
Lambda-Funktionen nur Funktionen umgeschrieben werden, deren Code eine Zeile umfasst.
Die Syntax der Lambda-Funktion sieht so aus:
lambda Funktionsparameter: Operation mit dem Funktionsparameter
Lassen Sie uns die Funktion square mit
einer Lambda-Funktion umschreiben und sie an
den Parameter func übergeben:
print( func([1, 2, 3], lambda num: num ** 2) )
Die Lambda-Funktion kann in eine Variable geschrieben werden:
square = lambda num: num ** 2
print( func([1, 2, 3], square) )
Schreiben Sie den folgenden Code mit einer Lambda-Funktion um:
def func(num, clb):
return clb(num)
def clb(num):
return num + 1
print( func(2, clb) )
Schreiben Sie den folgenden Code mit einer Lambda-Funktion um:
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) )
Schreiben Sie den folgenden Code mit einer Lambda-Funktion um:
def func(num1, num2, clb):
res = clb(num1) + num2
return res
def clb(num):
return num ** 3
print(func(2, 6, clb))