Heim > Backend-Entwicklung > Python-Tutorial > Warum können Pythons Lambda-Ausdrücke keine Anweisungen enthalten?

Warum können Pythons Lambda-Ausdrücke keine Anweisungen enthalten?

WBOY
Freigeben: 2023-08-19 08:14:14
nach vorne
1687 Leute haben es durchsucht

Warum können Pythons Lambda-Ausdrücke keine Anweisungen enthalten?

Ja, Python-Lambda-Ausdrücke können keine Anweisungen enthalten. Bevor wir uns mit den Gründen befassen, wollen wir verstehen, was Lambda ist, seine Ausdrücke und Aussagen.

Lambda-Ausdrücke ermöglichen die Definition anonymer Funktionen. Eine Lambda-Funktion ist eine anonyme Funktion ohne Namen. Schauen wir uns die Syntax an −

lambda arguments: expressions
Nach dem Login kopieren

Das Schlüsselwort Lambda definiert eine Lambda-Funktion. Ein Lambda-Ausdruck enthält einen oder mehrere Parameter, kann jedoch nur einen Ausdruck haben.

Lambda-Beispiel

Schauen wir uns ein Beispiel an −

myStr = "Thisisit!"
(lambda myStr : print(myStr))(myStr)
Nach dem Login kopieren

Ausgabe

Thisisit!
Nach dem Login kopieren

Verwenden Sie Lambda, um eine Liste basierend auf dem Wert einer anderen Liste zu sortieren

In diesem Beispiel sortieren wir die Liste basierend auf den Werten einer anderen Liste, d. h. die zweite Liste wird nach ihrem Index in der sortierten Reihenfolge sortiert -

# Two Lists
list1 = ['BMW', 'Toyota', 'Audi', 'Tesla', 'Hyundai']
list2 = [2, 5, 1, 4, 3]

print("List1 = \n",list1)
print("List2 (indexes) = \n",list2)

# Sorting the List1 based on List2
res = [val for (_, val) in sorted(zip(list2, list1), key=lambda x: x[0])]
print("\nSorted List = ",res)
Nach dem Login kopieren

Ausgabe

List1 = 
 ['BMW', 'Toyota', 'Audi', 'Tesla', 'Hyundai']
List2 (indexes) = 
 [2, 5, 1, 4, 3]

Sorted List =  ['Audi', 'BMW', 'Hyundai', 'Tesla', 'Toyota']
Nach dem Login kopieren

Lambda-Ausdrücke dürfen keine Anweisungen enthalten

Wir haben oben zwei Beispiele für die Verwendung von Lambda-Ausdrücken gesehen. Die Lambda-Ausdrücke von Python können keine Anweisungen enthalten, da das Syntax-Framework von Python keine in Ausdrücken verschachtelten Anweisungen verarbeiten kann.

In Python sind Funktionen bereits erstklassige Objekte und können im lokalen Bereich deklariert werden. Der einzige Vorteil der Verwendung eines Lambda anstelle der lokalen Definition der Funktion besteht also darin, dass Sie der Funktion keinen Namen geben müssen, also eine anonyme Funktion, sondern es ist lediglich eine lokale Variable, die dem Funktionsobjekt zugewiesen wird!

Das obige ist der detaillierte Inhalt vonWarum können Pythons Lambda-Ausdrücke keine Anweisungen enthalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage