KramNick
Ich bin an Eröffnungsvarianten interessiert. Lange Zeit war ich Vereinsspieler in Berlin. Ich danke allen für die Verbesserung meiner Ansätze. I'm only human born to make mistakes. Lothar
titel=Lambda-Funktion (Python)
Die Programmiersprache Python kennt die aus Lisp entlehnte Möglichkeit, anonyme Funktionen zu erstellen; diese können direkt verwendet oder einer Variablen zugewiesen werden. Diese Python-Variante ist von LISP inspiriert, aber nicht mit der Python-Variante identisch.
Die Lambda-Funktion verfügt in Python über ein eigenes Schlüsselwort (nämlich lambda) und ist daher ein (weiterführendes) Element der Sprache. Lambda ist einer der mächtigsten Ausdrücke in der Programmiersprache Python. Die Lambda-Funktion in Python ist eine Anonyme Subroutine, die auf einen Ausdruck (Programmierung) beschränkt ist.
Lambda-Funktionen können keine Kontrollstrukturen enthalten, sondern bestehen aus einem einzigen Ausdruck und sind deshalb innerhalb von Programmen nur für kleine Teilaufgaben vorgesehen. Sie können prinzipiell immer durch eine benannte, also normale Funktion ersetzt werden; ihre Verwendung ist daher eine Frage des Stils. In Python 3.0 wird ``lambda`` wohl nicht mehr oft zu finden sein.
Deklaration
BearbeitenDie Deklaration einer Lambda-Funktion folgt dem folgenden Schema:
lambda [Argumentliste] : Ausdruck
Die Argumentliste besteht aus mit Komma getrennten Bezeichnern und darf auch leer sein.
Beispiel
BearbeitenDie Deklaration
a = lambda x, y: x*y
ist gleichbedeutend mit:
def a(x, y):
return x*y
Anwendung
BearbeitenLambda-Funktionen werden dort verwendet, wo eine Funktion als Übergabewert erwartet wird, z. B. für die Standardfunktion „map“:
>>> zahlen=range(1,11)
>>> zahlen
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> map(lambda n: n*n, zahlen)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
>>>
oder für die Methode „sort“, der als erstes (oder als cmp benanntes) Argument eine Vergleichsfunktion übergeben werden kann:
>>> help([].sort)
Help on built-in function sort:
sort(...)
L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
cmp(x, y) -> -1, 0, 1
>>> liz=['acht', 'Neun']
>>> liz.sort()
>>> liz
['Neun', 'acht']
>>> liz.sort(key=lambda a: a.upper())
>>> liz
['acht', 'Neun']
>>>
Strings werden normalerweise gemäß ihren Zeichenwerten verglichen; Kleinbuchstaben sind gemäß ASCII „größer“ als Großbuchstaben. Die im Beispiel verwendete anonyme Funktion wendet die Standard-Vergleichsfunktion auf die in Großschreibung konvertierten Werte an und gibt das Ergebnis zurück, wodurch sich die resultierende Reihenfolge im obigen Beispiel ändert.
Siehe auch
Bearbeiten- Lambda-Funktion (Begriffsklärung)
- anonyme Funktion
- Rückruffunktion
Kategorie:Programmiersprachelement Kategorie:Programmiersprache_Python