Was sind Lambda-Funktionen und wie werden sie verwendet?



Lernen Sie Python-Lambda-Funktionen zusammen mit dem Unterschied zwischen normalen Funktionen und Lambda-Funktionen und wie sie in filter (), map (), redu () verwendet werden können.

Ein Name ist eine Konvention, die verwendet wird, um auf eine Entität zu verweisen oder diese anzusprechen. Fast alles um uns herum hat einen Namen. Entsprechend geht auch die Welt der Programmierung. Aber ist es ein Muss, alles zu benennen? Oder können Sie etwas haben, das nur 'anonym' ist? Die Antwort ist ja. ' bietet Lambda-Funktionen, auch als anonyme Funktionen bekannt, die tatsächlich namenlos sind. Lassen Sie uns in der folgenden Reihenfolge mehr über diese 'anonymen Geheimnisse' von Python erfahren.

Also fangen wir an :)





Warum Python Lambda-Funktionen verwenden?


Der Hauptzweck anonymer Funktionen wird sichtbar, wenn Sie eine Funktion nur einmal benötigen. Sie können überall dort erstellt werden, wo sie benötigt werden. Aus diesem Grund werden Python-Lambda-Funktionen auch als Wegwerffunktionen bezeichnet, die zusammen mit anderen vordefinierten Funktionen wie filter (), map () usw. verwendet werden. Diese Funktionen tragen dazu bei, die Anzahl der Zeilen Ihres Codes im Vergleich zu zu verringern normal .

Um dies zu beweisen, gehen wir weiter und lernen die Python Lambda-Funktionen kennen.



Was sind Python Lambda-Funktionen?


Python Lambda-Funktionen sind Funktionen, die keinen Namen haben. Sie werden auch als anonyme oder namenlose Funktionen bezeichnet. Das Wort 'Lambda' ist kein Name, sondern ein Schlüsselwort. Dieses Schlüsselwort gibt an, dass die folgende Funktion anonym ist.

Nachdem Sie nun wissen, worauf sich diese anonymen Funktionen beziehen, gehen wir weiter, um zu sehen, wie Sie diese Python Lambda-Funktionen schreiben.

Wie schreibe ich Lambda-Funktionen in Python?

Eine Lambda-Funktion wird mit dem Lambda-Operator erstellt und hat folgende Syntax:



SYNTAX:

Lambda-Argumente: Ausdruck

Python Lambda-Funktion kann eine beliebige Anzahl von Argumenten haben, aber es dauert nur ein Ausdruck. Die Eingaben oder Argumente können bei 0 beginnen und bis zu einem beliebigen Grenzwert reichen. Wie bei allen anderen Funktionen ist es vollkommen in Ordnung, Lambda-Funktionen ohne Eingaben zu haben. Daher können Sie Lambda-Funktionen in einem der folgenden Formate haben:

BEISPIEL:

Lambda: 'Geben Sie den Zweck an'

Hier nimmt die Lambda-Funktion keine Argumente an.

BEISPIEL:

Lambda aein: “Geben Sie die Verwendung von a anein''

Hier nimmt Lambda eine Eingabe, die a istein.

c++ java python

Ebenso können Sie Lambda a habeneinzu2zu3..zun.

Nehmen wir einige Beispiele, um dies zu demonstrieren:

BEISPIEL 1:

a = Lambda x: x * x Druck (a (3))

AUSGABE: 9

BEISPIEL 2:

a = Lambda x, y: x * y Druck (a (3,7))

AUSGABE: einundzwanzig

Wie Sie sehen können, habe ich hier zwei Beispiele angeführt. Im ersten Beispiel wird die Lambda-Funktion mit nur einem Ausdruck verwendet, während im zweiten Beispiel zwei Argumente übergeben werden. Bitte beachten Sie, dass beide Funktionen einen einzigen Ausdruck haben, gefolgt von den Argumenten. Daher können Lambda-Funktionen nicht verwendet werden, wenn Sie mehrzeilige Ausdrücke benötigen.

Andererseits können normale Python-Funktionen eine beliebige Anzahl von Anweisungen in ihren Funktionsdefinitionen übernehmen.

Wie reduzieren anonyme Funktionen die Größe des Codes?

Bevor Sie die erforderliche Codemenge vergleichen, schreiben Sie zunächst die Syntax von auf und vergleichen Sie es mit den zuvor beschriebenen Lambda-Funktionen.

Jede normale Funktion in Python wird mit a definiert def Schlüsselwort wie folgt:

SYNTAX:

def Funktionsname (Parameter):
Aussage (n)

Wie Sie sehen können, ist die für eine Lambda-Funktion erforderliche Codemenge erheblich geringer als die für normale Funktionen.

c ++ stl Interview Fragen

Lassen Sie uns das Beispiel, das wir zuvor genommen haben, jetzt mit normalen Funktionen umschreiben.

BEISPIEL:

def my_func (x): return x * x print (my_func (3))

AUSGABE: 9

Wie Sie sehen können, benötigen wir im obigen Beispiel eine return-Anweisung in my_func, um den Wert des Quadrats von 3 auszuwerten. Im Gegensatz dazu verwendet die Lambda-Funktion nicht diese return-Anweisung, sondern den Hauptteil der anonymen Funktion wird in derselben Zeile wie die Funktion selbst nach dem Doppelpunktsymbol geschrieben. Daher ist die Größe der Funktion kleiner als die von my_func.

Lambda-Funktionen in den obigen Beispielen werden jedoch unter Verwendung anderer verwendet ein. Dies geschieht, weil diese Funktionen namenlos sind und daher ein Name erforderlich ist. Diese Tatsache mag jedoch verwirrend erscheinen, warum solche namenlosen Funktionen verwendet werden, wenn Sie tatsächlich einen anderen Namen zuweisen müssen, um sie aufzurufen. Und nachdem ich meiner Funktion den Namen a zugewiesen habe, bleibt er natürlich nicht mehr namenlos! Recht?

Es ist eine berechtigte Frage, aber der Punkt ist, dass dies nicht der richtige Weg ist, diese anonymen Funktionen zu verwenden.

Anonyme Funktionen werden am besten in anderen verwendet Funktionen höherer Ordnung die entweder eine Funktion als Argument verwenden oder eine Funktion als Ausgabe zurückgeben. Um dies zu demonstrieren, gehen wir nun zu unserem nächsten Thema über.

Python Lambda-Funktionen innerhalb benutzerdefinierter Funktionen:

Wie oben erwähnt, werden Lambda-Funktionen in anderen Funktionen verwendet, um den besten Vorteil zu erzielen.

Das folgende Beispiel besteht aus new_func, einer normalen Python-Funktion, die ein Argument x akzeptiert. Dieses Argument wird dann zu einem unbekannten Argument y hinzugefügt, das über die Lambda-Funktion bereitgestellt wird.

BEISPIEL:

def new_func (x): return (Lambda y: x + y) t = new_func (3) u = new_func (2) print (t (3)) print (u (3))

AUSGABE:

6
5
Wie Sie im obigen Beispiel sehen können, wird die in new_func vorhandene Lambda-Funktion immer dann aufgerufen, wenn wir new_func () verwenden. Jedes Mal können wir separate Werte an die Argumente übergeben.

Nachdem Sie nun gesehen haben, wie anonyme Funktionen in Funktionen höherer Ordnung verwendet werden, wollen wir nun eine der beliebtesten Anwendungen verstehen, die in den Methoden filter (), map () und redu () enthalten ist.

Verwendung anonymer Funktionen in filter (), map () und redu ():

Anonyme Funktionen innerhalb Filter():

Filter():

Die filter () -Methode wird verwendet, um die angegebenen iterablen Elemente (Listen, Mengen usw.) mithilfe einer anderen Funktion zu filtern, die als Argument übergeben wird, um alle Elemente auf wahr oder falsch zu testen.

Die Syntax dieser Funktion lautet:

SYNTAX:

Filter (Funktion, iterierbar)

Betrachten Sie nun das folgende Beispiel:

BEISPIEL:

Konvertieren Sie Dezimal in Binär in Python
my_list = [2,3,4,5,6,7,8] new_list = list (Filter (Lambda a: (a / 3 == 2), my_list)) print (new_list)

AUSGABE: [6]

Hier ist my_list eine Liste iterierbarer Werte, die an die Filterfunktion übergeben werden. Diese Funktion verwendet die Lambda-Funktion, um zu überprüfen, ob die Liste Werte enthält, die bei Division durch 3 gleich 2 sind. Die Ausgabe besteht aus einer Liste, die den in der anonymen Funktion vorhandenen Ausdruck erfüllt.

Karte():

Die map () -Funktion in Python ist eine Funktion, die eine bestimmte Funktion auf alle iterablen Elemente anwendet und eine neue Liste zurückgibt.

SYNTAX:

Karte (Funktion, iterierbar)

Nehmen wir ein Beispiel, um die Verwendung der Lambda-Funktionen in der Funktion map () zu demonstrieren:

BEISPIEL:

my_list = [2,3,4,5,6,7,8] new_list = list (map (lambda a: (a / 3! = 2), li)) print (new_list)

AUSGABE:

[Richtig, wahr, wahr, wahr, falsch, wahr, wahr]

Die obige Ausgabe zeigt, dass das zurückgegebene Ergebnis True sein sollte, wenn der Wert der Iterables ungleich 2 ist, wenn er durch 3 geteilt wird. Daher wird für alle Elemente in my_list true zurückgegeben, mit Ausnahme des Werts 6, wenn sich die Bedingung in False ändert.

reduzieren():

Die Funktion redu () wird verwendet, um eine andere Funktion auf eine Liste von Elementen anzuwenden, die als Parameter an sie übergeben werden, und gibt schließlich einen einzelnen Wert zurück.

Die Syntax dieser Funktion lautet wie folgt:

SYNTAX:

reduzieren (Funktion, Reihenfolge)

BEISPIEL:

aus functools import reduzieren reduzieren (Lambda a, b: a + b, [23,21,45,98])

Das obige Beispiel ist in der folgenden Abbildung dargestellt:

Reduzieren-Python Lambda-Edureka

AUSGABE: 187

Die Ausgabe zeigt deutlich, dass alle Elemente der Liste sind kontinuierlich hinzugefügt um das Endergebnis zurückzugeben.

Damit sind wir am Ende dieses Artikels über „Python Lambda“ angelangt. Ich hoffe, Sie sind mit allem klar, was mit Ihnen geteilt wurde. Stellen Sie sicher, dass Sie so viel wie möglich üben und Ihre Erfahrung zurücksetzen.

Hast du eine Frage an uns? Bitte erwähnen Sie es im Kommentarbereich dieses 'Python Lambda' -Blogs und wir werden uns so schnell wie möglich bei Ihnen melden.

Um detaillierte Informationen zu Python und seinen verschiedenen Anwendungen zu erhalten, können Sie sich live anmelden mit 24/7 Support und lebenslangem Zugriff.