Lambda-Funktionen in Python sind eine leistungsstarke Möglichkeit, kleine, anonyme Funktionen im Handumdrehen zu erstellen. Diese Funktionen werden typischerweise für kurze, einfache Operationen verwendet, bei denen der Aufwand einer vollständigen Funktionsdefinition unnötig wäre.
Während herkömmliche Funktionen mit dem Schlüsselwort def definiert werden, werden Lambda-Funktionen mit dem Schlüsselwort lambda definiert und direkt in Codezeilen integriert. Insbesondere werden sie häufig als Argumente für integrierte Funktionen verwendet. Sie ermöglichen Entwicklern, sauberen und lesbaren Code zu schreiben, indem sie temporäre Funktionsdefinitionen überflüssig machen.
In diesem Artikel besprechen wir, was Lambda-Funktionen tun und welche Syntax sie haben. Wir stellen auch einige Beispiele und Best Practices für deren Verwendung bereit und diskutieren ihre Vor- und Nachteile.
Lambda-Funktionen sind seit Version 2.0 Teil von Python, daher benötigen Sie:
In diesem Tutorial erfahren Sie, wie Sie Lambda-Funktionen mit der Bibliothek Pandas verwenden: einer schnellen, leistungsstarken, flexiblen und benutzerfreundlichen Open-Source-Bibliothek zur Datenanalyse und -manipulation. Wenn Sie es nicht installiert haben, führen Sie Folgendes aus:
pip install pandas
Zuerst definieren wir die Syntax, die Entwickler zum Erstellen von Lambda-Funktionen verwenden müssen.
Eine Lambda-Funktion wird mit dem Schlüsselwort lambda definiert, gefolgt von einem oder mehreren Argumenten und einem Ausdruck:
lambda arguments: expression
Stellen wir uns vor, wir möchten eine Lambda-Funktion erstellen, die zwei Zahlen addiert:
add = lambda x, y: x y
Führen Sie Folgendes aus:
result = add(3, 5) print(result)
Dies ergibt:
8
Wir haben eine anonyme Funktion erstellt, die zwei Argumente akzeptiert, x und y. Im Gegensatz zu herkömmlichen Funktionen haben Lambda-Funktionen keinen Namen: Deshalb sagen wir, dass sie „anonym“ sind.
Außerdem verwenden wir nicht die Return-Anweisung, wie wir es in regulären Python-Funktionen tun. Wir können die Lambda-Funktion also nach Belieben verwenden: Sie kann gedruckt werden (wie wir es in diesem Fall getan haben), in einer Variablen gespeichert usw.
Sehen wir uns nun einige häufige Anwendungsfälle für Lambda-Funktionen an.
Lambda-Funktionen werden insbesondere in Situationen verwendet, in denen wir eine vorübergehend einfache Funktion benötigen. Insbesondere werden sie häufig als Argumente für Funktionen höherer Ordnung verwendet.
Sehen wir uns einige praktische Beispiele an.
map() ist eine integrierte Funktion, die eine bestimmte Funktion auf jedes Element einer Iterable anwendet und ein Kartenobjekt mit den Ergebnissen zurückgibt.
Angenommen, wir möchten die Quadratwurzeln jeder Zahl in einer Liste berechnen. Wir könnten eine Lambda-Funktion wie folgt verwenden:
# Define the list of numbers numbers = [1, 2, 3, 4] # Calculate square values and print results squared = list(map(lambda x: x ** 2, numbers)) print(squared)
Dies ergibt:
[1, 4, 9, 16]
Wir haben jetzt eine Liste mit den Quadratwurzeln der Anfangszahlen.
Wie wir sehen können, vereinfacht dies die Prozesse erheblich, um Funktionen im laufenden Betrieb zu verwenden, die später nicht wiederverwendet werden müssen.
Angenommen, wir haben eine Liste mit Zahlen und möchten gerade Zahlen filtern.
Wir können eine Lambda-Funktion wie folgt verwenden:
# Create a list of numbers numbers = [1, 2, 3, 4] # Filter for even numbers and print results even = list(filter(lambda x: x % 2 == 0, numbers)) print(even)
Dies ergibt:
[2,4]
Die Funktion sorted() in Python gibt eine neue sortierte Liste aus den Elementen eines beliebigen Iterables zurück. Mithilfe von Lambda-Funktionen können wir bestimmte Filterkriterien auf diese Listen anwenden.
Angenommen, wir haben eine Liste von Punkten in zwei Dimensionen: (x,y). Wir möchten eine Liste erstellen, die die y-Werte inkrementell sortiert.
Wir können es so machen:
# Creates a list of points points = [(1, 2), (3, 1), (5, -1)] # Sort the points and print points_sorted = sorted(points, key=lambda point: point[1]) print(points_sorted)
Und wir bekommen:
[(5, -1), (3, 1), (1, 2)]
Aufgrund ihrer Prägnanz können Lambda-Funktionen in Listenverständnisse für spontane Berechnungen eingebettet werden.
Angenommen, wir haben eine Liste mit Zahlen. Wir möchten:
So können wir das tun:
# Create a list of numbers numbers = [1, 2, 3, 4] # Calculate and print the double of each one squared = [(lambda x: x ** 2)(x) for x in numbers] print(squared)
Und wir erhalten:
[1, 4, 9, 16]
Anhand der von uns untersuchten Beispiele wollen wir einige Vorteile der Verwendung von Lambda-Funktionen durchgehen:
Lassen Sie uns kurz einige Einschränkungen und Nachteile von Lambda-Funktionen in Python besprechen:
Nachdem wir nun über einige Vor- und Nachteile nachgedacht haben, definieren wir einige Best Practices für die effektive Nutzung von Lambda-Funktionen:
In bestimmten Fällen können fortgeschrittenere Lambda-Funktionstechniken hilfreich sein.
Sehen wir uns einige Beispiele an.
Lambda-Funktionen können für komplexe Operationen verschachtelt werden.
Diese Technik ist in Szenarien nützlich, in denen Sie mehrere kleine Transformationen in einer Sequenz benötigen.
Angenommen, Sie möchten beispielsweise eine Funktion erstellen, die die Quadratwurzel einer Zahl berechnet und dann 1 addiert. So können Sie Lambda-Funktionen dazu verwenden:
# Create a nested lambda function nested_lambda = lambda x: (lambda y: y ** 2)(x) 1 # Print the result for the value 3 print(nested_lambda(3))
Sie erhalten:
10
Viele Python-Bibliotheken nutzen Lambda-Funktionen, um komplexe Datenverarbeitungsaufgaben zu vereinfachen.
Lambda-Funktionen können beispielsweise mit Pandas und NumPy verwendet werden, um die Datenmanipulation und -transformation zu vereinfachen.
Angenommen, wir haben einen Datenrahmen mit zwei Spalten. Wir möchten eine weitere Spalte erstellen, die die Summe der beiden anderen darstellt. In diesem Fall können wir Lambda-Funktionen wie folgt verwenden:
# Create the columns' data data = {'A': [1, 2, 3], 'B': [4, 5, 6]} # Create data frame df = pd.DataFrame(data) # Create row C as A B and print the dataframe df['C'] = df.apply(lambda row: row['A'] row['B'], axis=1) print(df)
Und wir bekommen:
A B C 0 1 4 5 1 2 5 7 2 3 6 9
Das war’s für unsere kurze Tour durch Lambda-Funktionen in Python!
In diesem Artikel haben wir gesehen, wie man Lambda-Funktionen in Python verwendet, haben ihre Vor- und Nachteile untersucht, einige Best Practices vorgestellt und einige fortgeschrittene Anwendungsfälle angesprochen.
Viel Spaß beim Codieren!
P.S. Wenn Sie Python-Beiträge lesen möchten, sobald sie veröffentlicht werden, abonnieren Sie unseren Python Wizardry-Newsletter und verpassen Sie keinen einzigen Beitrag!
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3