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
WBOYnach vorne
2023-08-19 08:14:141709Durchsuche

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

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)

Ausgabe

Thisisit!

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)

Ausgabe

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

Sorted List =  ['Audi', 'BMW', 'Hyundai', 'Tesla', 'Toyota']

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen