Python Lambda-Funktionen mit Beispielen
Veröffentlicht: 2022-06-04Python – Eine Einführung
Python ist eine universelle Programmiersprache, die sehr beliebt ist. Es handelt sich um eine interpretierte Hochsprache, die die Lesbarkeit des Codes durch die Verwendung von deutlichen Einrückungen betont. Python wird von Programmierern verwendet, um sauberen, logischen Code für Projekte jeder Größenordnung zu schreiben.
Python wurde in den 1980er Jahren als Nachfolger der Programmiersprache ABC von Guido Van Rossum konzipiert. Seitdem ist Python aufgrund seiner Vielseitigkeit eine beliebte Programmiersprache geblieben.
Funktionen — Eine Einführung
Funktionen sind Codeblöcke, die funktionieren, wenn sie in einem Programm n-mal aufgerufen werden können. Sie sind strukturierte Codeanweisungen und führen eine bestimmte Funktion aus und können jederzeit verwendet werden. Funktionen werden grundsätzlich klassifiziert als:
- Benutzerdefinierte Funktion (USF) – Anpassbare Funktionen, die gemäß den Anforderungen des Programmierers geändert werden können.
- Integrierte Funktionen (BIF) – Funktionen, die nicht angepasst werden können und so verwendet werden müssen, wie sie verfügbar sind.
Lernen Sie Data Science-Kurse online bei upGrad
Python-Lambda-Funktionen
Python-Lambda-Funktionen sind im Wesentlichen anonym, da sie keinen eindeutigen Namen besitzen. Eine def- Funktion wird verwendet, um eine normale Funktion in Python zu bezeichnen. Inzwischen wird das Schlüsselwort Lambda verwendet, um eine anonyme Python-Funktion zu definieren.
Die Lambda-Funktion ist eine kleine Funktion, die mehrere Argumente, aber nur einen Ausdruck annehmen kann. Sie haben auch eine restriktivere, aber prägnantere Syntax als normale Python-Funktionen. Die Lambda-Funktion wurde der Python-Sprache 1994 zusammen mit den Funktionen map (), filter () und Reduce () hinzugefügt.
Sehen Sie sich unsere US - Data Science-Programme an
Professional Certificate Program in Data Science und Business Analytics | Master of Science in Datenwissenschaft | Master of Science in Datenwissenschaft | Advanced Certificate Program in Data Science |
Executive PG-Programm in Data Science | Bootcamp für Python-Programmierung | Professional Certificate Program in Data Science für die Entscheidungsfindung in Unternehmen | Fortgeschrittenes Programm in Data Science |
Um eine anonyme Funktion zu definieren, muss man das Lambda-Schlüsselwort verwenden, so wie def für normale Funktionen verwendet wird. Eine in Python definierte anonyme Funktion besteht aus drei Teilen:
- Das Stichwort Lambda
- Parameter oder eine gebundene Variable
- Funktionskörper
Syntax
Die Syntax einer Lambda-Funktion lautet wie folgt:
Lambda p1, p2: Ausdruck
p1 und p2 sind hier die Parameter. Es gibt keine Einschränkung für das Hinzufügen von Parametern in der Lambda-Funktion. Sie können so viele oder so wenige hinzufügen, wie Sie möchten. Aber die Lambda-Funktion ist syntaktisch auf einen Ausdruck beschränkt.
Beispiele für die Lambda-Funktion in Python:
Beispiel 1
x ="Lambda-Funktion"
# Lambda wird zum Drucken übergeben
(lambda x : print(x))(x)
Ausgabe
Lambda-Funktion
Beispiel 2
x = Lambda a : a + 10
drucken(x(5))
Ausgabe
fünfzehn
Unsere Lernenden lesen auch: Python kostenlos online lernen
Unterschiede zwischen normaler Funktion und Lambda-Funktion
Die Lambda-Funktion besitzt einige syntaktische Unterschiede zu normalen Funktionen.
- Im Body werden nur Ausdrücke und keine Anweisungen verwendet. Wenn Anweisungen wie Pass, Assert, Return oder Raise verwendet werden, zeigt die Ausgabe einen SyntaxError.
Beispiel
>>> (lambda x: bestätige x == 2)(2)
Datei „<Eingabe>“, Zeile 1
(Lambda x: bestätige x == 2)(2)
^
SyntaxError: Ungültige Syntax
- Eine Lambda-Funktion kann nur als einzelner Ausdruck existieren. Auch wenn der Ausdruck mit mehreren Strings über den Body verteilt wird, kann er nur ein einzelner Ausdruck bleiben.
Beispiel :
>>> (lambda x:
… (x % 2 und 'ungerade' oder 'gerade'))(3)
'seltsam'
Wenn das Lambda-Argument ungerade ist, gibt der Code die Zeichenfolge ungerade und gerade zurück, wenn dies nicht der Fall ist. Der Code erstreckt sich über zwei Zeilen, da er sich innerhalb der Klammern befindet, bleibt aber ein einzelner Ausdruck.
- Die Lambda-Funktion unterstützt keine Typanmerkungen. Das Hinzufügen von Anmerkungen zu einer Lambda-Syntax führt zu einem Syntaxfehler.
- IIFE oder sofort aufgerufener Funktionsausdruck ist eine Funktion, die ausgeführt wird, sobald sie definiert ist. Es wird auch als selbstausführende anonyme Funktion bezeichnet. IIFE ist eine direkte Folge der Lambda-Funktion, da eine Lambda-Funktion wie definiert aufrufbar ist.
Sehen wir uns nun die Hauptunterschiede zwischen normalen Funktionen und Lambda-Funktionen an:
(Quelle)
Lambda-Funktionen – Vor- und Nachteile
Vorteile
- Es macht den Code besser lesbar.
- Ideal für Funktionen, die nur einmal verwendet werden.
- Leicht verständlich und kann für einfache logische Erklärungen verwendet werden.
Nachteile:
- Mehrere unabhängige Ausdrücke können nicht ausgeführt werden.
- Die Verwendung der Lambda-Funktion ist nicht ideal, wenn sich ein Code in einer normalen (def)-Funktion über mehr als eine Zeile erstrecken würde.
- Alle Eingaben, Ausgaben und Operationen können nicht wie in einer normalen Funktion in einem Docstring erklärt werden.
Wo verwendet man Lambdas?
Obwohl normale def-Funktionen und Lambda-Funktionen wesentliche Unterschiede aufweisen, werden sie intern behandelt.
- Die allgemeine Verwendung von Lambda-Funktionen in Python dient der funktionalen Programmierung. Sie können Lambda in der funktionalen Programmierung verwenden, um eine Funktion als Parameter für eine andere Funktion bereitzustellen.
- Wenn Sie die Anzahl der Zeilen reduzieren müssen, um eine Funktion anzugeben, sind Lambdas der richtige Weg.
- Lambda wird auch mit Funktionen höherer Ordnung wie map(), Reduce() usw. verwendet.
- Die Reaktion auf UI-Framework-Ereignisse kann mithilfe von Lambda-Funktionen nachverfolgt werden.
Wo kann man auf die Verwendung von Lambda-Funktionen verzichten?
- Das Schreiben komplizierter Lambda-Funktionen ist keine gute Praxis, da es schwierig sein wird, sie zu entschlüsseln.
- Verzichten Sie auf die Verwendung von Lambda-Funktionen für wiederkehrende Vorgänge.
- Wenn der Code nicht dem Python Style Guide (PEP8) entspricht.
Lambda-Funktionen werden genau wie normale Funktionen getestet. Hierfür können sowohl unittest als auch doctest verwendet werden.
Lesen Sie unsere beliebten US - Data Science-Artikel
Datenanalysekurs mit Zertifizierung | Kostenloser JavaScript-Online-Kurs mit Zertifizierung | Die am häufigsten gestellten Fragen und Antworten zu Python-Interviews |
Fragen und Antworten zum Vorstellungsgespräch für Datenanalysten | Top Data Science Karrieremöglichkeiten in den USA [2022] | SQL vs. MySQL – Was ist der Unterschied? |
Ein ultimativer Leitfaden für Datentypen | Python-Entwicklergehalt in den USA | Gehalt von Datenanalysten in den USA: Durchschnittsgehalt |
Lambda-Funktion mit filter()
Filter() ist eine eingebaute Python-Funktion und eine Liste als Argumente. Filter () wird verwendet, wenn sich alle iterierbaren Elemente in einer Liste befinden und eine andere Liste zurückgegeben wird, die Elemente enthält, für die die Funktion wahr ist.
Beispiel :
# Python-Code zur Veranschaulichung
# filter() mit lambda()
li = [5, 7, 22, 97, 54, 62, 77, 23, 73, 61]
final_list = list(filter(lambda x: (x%2 != 0) , li))
print(final_list)
Ausgabe:
[5, 7, 97, 77, 23, 73, 61]
(Quelle)
Beispiel :
# Programm, um nur die geraden Einträge aus einer Liste herauszufiltern
meine_liste = [1, 5, 4, 6, 8, 11, 3, 12]
new_list = list(filter(lambda x: (x%2 == 0) , my_list))
print(neue_liste)
Ausgabe
[4, 6, 8, 12]
Lambda-Funktion mit map()
Die Zuordnungsfunktion wird verwendet, wenn sich alle Elemente in der Liste befinden, und die Liste wird mit Elementen zurückgegeben, die von dieser Funktion für jedes Element zurückgegeben werden.
Beispiel : Um den Wert jedes Elements in der Liste zu verdoppeln, lautet der Code wie folgt:
meine_liste = [1, 5, 4, 6, 8, 11, 3, 12]
new_list = list(map(lambda x: x * 2 , my_list))
print(neue_liste)
Ausgabe:
[2, 10, 8, 12, 16, 22, 6, 24]
Beispiel : Um jede Zahl in der Liste zu würfeln, lautet der Code wie folgt
Liste_1 = [1,2,3,4,5,6,7,8,9]
Kubik = map(lambda x:pow(x,3), list_1)
Liste (gewürfelt)
Ausgabe:
[1, 8, 27, 64, 125, 216, 343, 512, 729]
Lambda-Funktion mit Reduce()-Funktion
Die Funktion reduce() in Python ist eine Liste und ein Argument. Es wird aufgerufen, um eine iterierbare und neue reduzierte Liste zurückzugeben. Es ist der Additionsfunktion etwas ähnlich.
Beispiel 1
Hinweis: Dieses Beispiel stammt aus der functools-Bibliothek.
Um die Summe einer Liste zu erhalten, wäre der Code :
# Python-Code zur Veranschaulichung
# Reduce() mit Lambda()
# um die Summe einer Liste zu erhalten
aus functools Import reduzieren
li = [5, 8, 10, 20, 50, 100]
summe = reduzieren((lambda x, y: x + y), li)
Druck (Summe)
Ausgabe:
193
Fazit
Die Verwendung von Lambda-Funktionen in Python ist unter Programmierern seit langem ein kontroverses Thema. Es stimmt zwar, dass Lambdas durch eingebaute Funktionen, Listenverständnisse und Standardbibliotheken ersetzt werden können, aber ein Verständnis von Lambda-Funktionen ist ebenfalls erforderlich. Es hilft Ihnen, die grundlegenden Prinzipien der Programmierung zu verstehen und bessere Codes zu schreiben.
Auch wenn Sie Lambda-Funktionen nicht persönlich verwenden, kann es Fälle geben, in denen Sie auf diese in den Programmen anderer Personen stoßen. Es wird daher empfohlen, dass Sie sowieso über Grundkenntnisse in Lambda-Funktionen verfügen.
Wenn Sie vollwertiges Python lernen und Ihre Karriere in Data Science und Business Analytics verbessern möchten, ist das professionelle Online-Zertifikatsprogramm von upGrad in Data Science und Business Analytics von der Top-US-Universität – University of Maryland – Ihre beste Wahl.
Das Programm bietet die Möglichkeit, an einer der 100 besten Universitäten der Welt zu studieren und ein Zertifikat von Maryland Smith zu erwerben, um Ihre Erfolgschancen in diesem Bereich zu erhöhen. Es handelt sich um einen 9-monatigen Kurs mit Zugang zu über 300 Einstellungspartnern, gesicherten Vorstellungsgesprächen für Studienanfänger und sechs Mentoring-Anrufen.
Was sind Dekorateure in Python?
Eine Funktion in Python, die das Argument einer Funktion nimmt und eine andere Funktion zurückgibt, wird Dekorator genannt. Es wird mit der Decorator-Syntax bezeichnet. Decorators können in Lambda-Funktionen, aber nicht mit der Decorator-Syntax angewendet werden. Es wird normalerweise zu Debugging-Zwecken implementiert. Alternativ kann eine Lambda-Funktion als Decorator verwendet werden, aber es ist nicht ratsam.
Was sind Argumente in Python-Lambda-Funktionen?
Lambda-Funktionen wie normale def-Funktionen unterstützen die verschiedenen Arten der Übergabe von Argumenten. Dazu gehören: Nur-Schlüsselwort-Argument Schlüsselwortargumente/benannte Argumente Varargs/Variable Liste von Argumenten Variable Liste von Schlüsselwortargumenten.
Was sind Closures in Python Lambda-Funktionen?
Closures oder lexikalische Closures sind Funktionen, bei denen jede freie Variable mit Ausnahme der Parameter an einen bestimmten Wert im einschließenden Gültigkeitsbereich der Funktion gebunden ist. Schließungen können von überall aufgerufen werden. Lambda-Funktionen können wie normale def-Funktionen Closures sein.