Du kannst eigene Python-Funktionen mit dem Schlüsselwort def, Funktionsheadern, Docstrings und Funktionskörpern schreiben. Es gibt jedoch eine schnellere Möglichkeit, Funktionen ad hoc zu schreiben: lambda-Funktionen, benannt nach dem Schlüsselwort lambda.
Manche Funktionsdefinitionen sind so einfach, dass sie sich in eine Lambda-Funktion umwandeln lassen. So sparst du Zeilen und hältst deinen Code schlank – besonders praktisch, wenn du große Programme schreibst und wartest.
lambda-Funktion
Hier schreiben wir unsere Funktion raise_to_power als Lambda-Funktion um. Nach dem Schlüsselwort lambda gibst du die Argumentnamen an, gefolgt von einem Doppelpunkt und dem Ausdruck, der den Rückgabewert der Funktion definiert.
raise_to_power =lambda x, y: x ** y
raise_to_power(2,3)Bereitgestellt von
Wie erwähnt, erlauben dir lambda-Funktionen, schnell und pragmatisch Funktionen zu schreiben. Sie sind nicht für jeden Fall ideal, aber in manchen Situationen äußerst nützlich – wie im folgenden Beispiel.
map() und lambda-Funktion
Die Funktion map nimmt zwei Argumente entgegen: eine Funktion und eine Sequenz (zum Beispiel eine Liste). Sie wendet die Funktion auf alle Elemente der Sequenz an. Wir können lambda-Funktionen direkt an map übergeben, ohne ihnen einen Namen zu geben – man spricht dann von anonymen Funktionen.
In diesem Beispiel verwenden wir map() mit einer lambda-Funktion, die alle Elemente der Liste quadriert, und speichern das Ergebnis in square_all.
nums =[48,6,9,21,1]
square_all =map(lambda num: num **2, nums)print(square_all)Bereitgestellt von
Das Ausdrucken von square_all zeigt, dass es sich um ein map-Objekt handelt. Um die Werte zu sehen, wandeln wir es mit list in eine Liste um und drucken das Ergebnis.
Interaktives Beispiel zum Schreiben einer lambda-Funktion
Die folgende Funktion echo_word nimmt zwei Parameter entgegen: einen String word1 und eine Ganzzahl echo. Sie gibt einen String zurück, der aus echo Wiederholungen von word1 besteht.
Du wirst diese einfache Funktion in eine Lambda-Funktion umwandeln.
defecho_word(word1, echo):"""Concatenate echo copies of word1."""
words = word1 * echo
return words
Bereitgestellt von
Im folgenden Beispiel wirst du:
Eine Lambda-Funktion echo_word mit den Variablen word1 und echo definieren. Repliziere, was die ursprüngliche Funktionsdefinition von echo_word() oben macht.
echo_word() mit dem String-Argument 'hey' und dem Wert 5 in dieser Reihenfolge aufrufen. Weisen den Aufruf result zu und gib anschließend result aus.
# Define echo_word as a lambda function: echo_word
echo_word =(lambda word1, echo: word1 * echo)# Call echo_word: result
result = echo_word('hey',5)# Print resultprint(result)Bereitgestellt von
Wenn wir den obigen Code ausführen, erhalten wir folgendes Ergebnis:
Lerne mehr über Python-Lambda-Funktionen, wozu sie gut sind und wann man sie benutzt. Enthält praktische Beispiele und bewährte Methoden für eine effektive Umsetzung.
Lerne die Funktionen und Methoden von Python-Listen kennen. Schau dir jetzt die Code-Beispiele für list() und andere Python-Funktionen und -Methoden an!
Du kannst eigene Python-Funktionen mit dem Schlüsselwort
def, Funktionsheadern, Docstrings und Funktionskörpern schreiben. Es gibt jedoch eine schnellere Möglichkeit, Funktionen ad hoc zu schreiben:lambda-Funktionen, benannt nach dem Schlüsselwortlambda.Manche Funktionsdefinitionen sind so einfach, dass sie sich in eine Lambda-Funktion umwandeln lassen. So sparst du Zeilen und hältst deinen Code schlank – besonders praktisch, wenn du große Programme schreibst und wartest.
lambda-FunktionHier schreiben wir unsere Funktion
raise_to_powerals Lambda-Funktion um. Nach dem Schlüsselwortlambdagibst du die Argumentnamen an, gefolgt von einem Doppelpunkt und dem Ausdruck, der den Rückgabewert der Funktion definiert.Wie erwähnt, erlauben dir
lambda-Funktionen, schnell und pragmatisch Funktionen zu schreiben. Sie sind nicht für jeden Fall ideal, aber in manchen Situationen äußerst nützlich – wie im folgenden Beispiel.map()undlambda-FunktionDie Funktion
mapnimmt zwei Argumente entgegen: eine Funktion und eine Sequenz (zum Beispiel eine Liste). Sie wendet die Funktion auf alle Elemente der Sequenz an. Wir könnenlambda-Funktionen direkt anmapübergeben, ohne ihnen einen Namen zu geben – man spricht dann von anonymen Funktionen.In diesem Beispiel verwenden wir
map()mit einerlambda-Funktion, die alle Elemente der Liste quadriert, und speichern das Ergebnis insquare_all.Das Ausdrucken von
square_allzeigt, dass es sich um einmap-Objekt handelt. Um die Werte zu sehen, wandeln wir es mitlistin eine Liste um und drucken das Ergebnis.Interaktives Beispiel zum Schreiben einer
lambda-FunktionDie folgende Funktion
echo_wordnimmt zwei Parameter entgegen: einen Stringword1und eine Ganzzahlecho. Sie gibt einen String zurück, der ausechoWiederholungen vonword1besteht.Du wirst diese einfache Funktion in eine Lambda-Funktion umwandeln.
Im folgenden Beispiel wirst du:
echo_wordmit den Variablenword1undechodefinieren. Repliziere, was die ursprüngliche Funktionsdefinition vonecho_word()oben macht.echo_word()mit dem String-Argument'hey'und dem Wert5in dieser Reihenfolge aufrufen. Weisen den Aufrufresultzu und gib anschließendresultaus.Wenn wir den obigen Code ausführen, erhalten wir folgendes Ergebnis:
Probier es selbst aus.
Mehr über Lambda-Funktionen erfährst du in diesem Video aus unserem Kurs Python Data Science Toolbox (Part 1).
Dieser Inhalt stammt aus dem DataCamp-Kurs Python Data Science Toolbox (Part 1) von Hugo Bowne-Anderson.
Schau dir auch DataCamps Python Functions Tutorial an.