„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > So verwenden Sie Lambda-Funktionen in Python

So verwenden Sie Lambda-Funktionen in Python

Veröffentlicht am 15.11.2024
Durchsuche:417

How to Use Lambda Functions in Python

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.

Voraussetzungen

Lambda-Funktionen sind seit Version 2.0 Teil von Python, daher benötigen Sie:

  • Mindestversion von Python: 2.0.
  • Empfohlene Python-Version: 3.10 oder höher.

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

Syntax und Grundlagen von Lambda-Funktionen für Python

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.

Häufige Anwendungsfälle für Lambda-Funktionen

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.

Verwenden von Lambda-Funktionen mit der Funktion map()

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.

Verwenden von Lambda-Funktionen mit der Funktion filter()

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]

Verwenden von Lambda-Funktionen mit der Funktion sorted()

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)]

Verwendung von Lambda-Funktionen im Listenverständnis

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:

  • Über die gesamte Liste iterieren
  • Berechnen und drucken Sie das Doppelte der Anfangswerte.

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]

Vorteile der Verwendung von Lambda-Funktionen

Anhand der von uns untersuchten Beispiele wollen wir einige Vorteile der Verwendung von Lambda-Funktionen durchgehen:

  • Prägnanz und Lesbarkeit bei einfacher Logik: Lambda-Funktionen ermöglichen prägnanten Code und reduzieren den Bedarf an Standardfunktionsdefinitionen. Dies verbessert die Lesbarkeit in Fällen, in denen die Funktionslogik einfach ist.
  • Erweiterte funktionale Programmierfunktionen: Lambda-Funktionen passen gut zu den Prinzipien der funktionalen Programmierung und ermöglichen funktionale Konstrukte in Python-Code. Insbesondere erleichtern sie die Verwendung von Funktionen höherer Ordnung und die Anwendung von Funktionen als erstklassige Objekte.
  • Wann und warum man Lambda-Funktionen bevorzugen sollte: Lambda-Funktionen sind besonders vorteilhaft, wenn kurze, „wegwerfbare“ Funktionen definiert werden, die nicht an anderer Stelle im Code wiederverwendet werden müssen. Daher eignen sie sich ideal für die Inline-Verwendung, beispielsweise als Argumente für Funktionen höherer Ordnung.

Einschränkungen und Nachteile

Lassen Sie uns kurz einige Einschränkungen und Nachteile von Lambda-Funktionen in Python besprechen:

  • Herausforderungen bei der Lesbarkeit komplexer Ausdrücke: Obwohl Lambda-Funktionen prägnant sind, können sie bei der Verwendung für komplexe Ausdrücke schwierig zu lesen und zu verstehen sein. Dies kann zu Code führen, der schwieriger zu warten und zu debuggen ist.
  • Einschränkungen bei der Fehlerbehandlung und beim Debuggen: Da Lambda-Funktionen nur einen einzigen Ausdruck enthalten können, können sie keine Anweisungen wie den Try-Except-Block für die Fehlerbehandlung enthalten. Aufgrund dieser Einschränkung sind sie für komplexe Vorgänge, die diese Funktionen erfordern, ungeeignet.
  • Eingeschränkte Funktionalität: Da Lambda-Funktionen nur einen einzigen Ausdruck enthalten können, sind sie weniger vielseitig als Standardfunktionen. Diese konstruktionsbedingte Einschränkung beschränkt ihre Verwendung auf einfache Operationen und Transformationen.

Best Practices für die Verwendung von Lambda-Funktionen

Nachdem wir nun über einige Vor- und Nachteile nachgedacht haben, definieren wir einige Best Practices für die effektive Nutzung von Lambda-Funktionen:

  • Halten Sie sie einfach: Um die Lesbarkeit und Einfachheit zu gewährleisten, sollten Lambda-Funktionen kurz gehalten und auf einfache Vorgänge beschränkt werden. Funktionen mit komplexer Logik sollten in Standardfunktionen umgestaltet werden.
  • Übermäßigen Gebrauch vermeiden: Während Lambda-Funktionen für zahlreiche Situationen praktisch sind, kann ihre übermäßige Verwendung zu Code führen, der schwer zu lesen und zu warten ist. Setzen Sie sie mit Bedacht ein und entscheiden Sie sich für Standardfunktionen, wenn es auf Klarheit ankommt.
  • Lambda-Funktionen mit anderen Python-Funktionen kombinieren: Wie wir gesehen haben, können Lambda-Funktionen effektiv mit anderen Python-Funktionen kombiniert werden, wie z. B. Listenverständnis und Funktionen höherer Ordnung. Dies kann bei richtiger Verwendung zu aussagekräftigerem und prägnanterem Code führen.

Fortgeschrittene Techniken mit Lambda-Funktionen

In bestimmten Fällen können fortgeschrittenere Lambda-Funktionstechniken hilfreich sein.

Sehen wir uns einige Beispiele an.

Verschachtelte Lambda-Funktionen

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

Integration mit Python-Bibliotheken für erweiterte Funktionalität

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!

Zusammenfassung

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!

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/appsignal/how-to-use-lambda-functions-in-python-3llj?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

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