Lambda-Funktionen mit der for-Schleife in Python verwenden
Lambda-Funktionen oder anonyme Funktionen sind Python-Funktionen ohne Namen. Diese Funktionen werden durch die Verwendung des Lambda-Schlüsselworts im Gegensatz zum def-Schlüsselwort erstellt, das traditionell verwendet wird, um normale Funktionen in Python zu definieren.
Lambda-Funktionen sind nicht nur kleiner als normale Funktionen, sondern weisen auch einige Unterschiede auf. Am bedeutsamsten ist das Fehlen einer explizit definierten return-Anweisung und die Beschränkung auf nur einen Ausdruck.
Trotzdem akzeptieren Lambda-Funktionen wie die normalen Python-Funktionen mehrere Argumente.
In Python können Lambda-Funktionen wie unten gezeigt implementiert werden.
lambda arguments: expressions:
Lambda-Funktionen werden verwendet, wenn ein Funktionsobjekt erstellt werden muss, das als Argument in einer anderen Funktion verwendet wird.
Die Leistungsfähigkeit von Lambda wird besonders deutlich, wenn sie zusammen mit Funktionen höherer Ordnung wie map()
verwendet wird. Diese Funktionen akzeptieren andere Funktionsobjekte als Argumente.
Darüber hinaus können mit Lambda-Funktionen auch Operationen durchgeführt werden, die nur für kurze Zeit anonyme Funktionen erfordern. Ein gutes Beispiel hierfür wäre die Verwendung von Lambda-Funktionen neben einer for-Schleife, um eine bestimmte Operation an allen Elementen einer Iterable durchzuführen.
Das folgende Programm veranschaulicht, wie wir eine for-Schleife verwenden können, um eine Liste von Zahlen zu durchlaufen, und in diesem Fall wird eine Lambda-Funktion als Inkrementierer verwendet.
nums1 = [45, 46, 47, 48, 50]
nums2 = []
for i in nums1:
def x(i):
return i + 1
nums2.append(x(i))
print(nums2)
Ausgabe:
[46, 47, 48, 49, 51]
For-Schleifen können verwendet werden, um über andere Sequenzen wie Tupel, Strings, Wörterbücher und Mengen zu iterieren. Obwohl Lambda-Funktionen nur einen Ausdruck haben können, gibt es keine Einschränkungen hinsichtlich der verwendbaren Datentypen.
Das folgende Beispiel veranschaulicht, wie wir mit einer for-Schleife und einer Lambda-Funktion über eine Liste von Strings iterieren können.
fruits = ["mango", "apple", "melon", "pineapple"]
fruits_upper = []
for fruit in fruits:
def x(fruit):
return fruit.upper()
fruits_upper.append(x(fruit))
print(fruits_upper)
Ausgabe:
['MANGO', 'APPLE', 'MELON', 'PINEAPPLE']
Die Lambda-Funktion kann zusammen mit einer for-Schleife verwendet werden, um eine Liste von Lambda-Objekten zu erstellen. Mit diesen Objekten können wir mithilfe einer for-Schleife Aktionen an Elementen eines Iterables ausführen.
Dies ist insbesondere dann von Vorteil, wenn über ein iterierbares Objekt iteriert werden soll, während gleichzeitig Änderungen vorgenommen werden, ohne dass ein Laufzeitfehler auftritt.
list = [1, 2, 3, 4, 5]
def add_two(x):
return lambda: x + 2
list = [add_two(i) for i in list]
for element in list:
print(element())
Ausgabe:
3
4
5
6
7
Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.
LinkedIn