Die Funktion sorted() bietet eine vielseitige Möglichkeit, Listen nach bestimmten Kriterien neu anzuordnen. Das Schlüsselargument ermöglicht es uns, benutzerdefinierte Logik zum Sortieren zu verwenden und anonyme Lambda-Funktionen zu nutzen.
Lambda-Funktionen sind prägnante Inline-Funktionen, die mit dem Schlüsselwort Lambda definiert werden. Die allgemeine Syntax lautet:
lambda input_variable(s): expression
Sie nehmen Eingabevariablen und führen eine durch den Ausdruck angegebene Operation aus.
Im Kontext von sorted() , das Schlüsselargument akzeptiert einen Aufruf, der jedes Listenelement verarbeitet und einen zum Sortieren verwendeten Wert erzeugt. Die gebräuchlichste Methode zum Definieren dieser Funktion ist die Verwendung von Lambda. Die Syntax:
sorted(list, key=lambda element: expression)
Zum Beispiel:
sorted([1, 3, 2], key=lambda x: x % 2)
Die Lambda-Funktion berechnet den Rest jedes Elements, wenn es durch 2 geteilt wird, und gibt im Wesentlichen [0, 1, 0] für die Liste zurück [1, 3, 2]. Diese transformierte Liste wird dann zum Sortieren verwendet, was zu [1, 3, 2] führt.
Das Schlüsselargument wandelt die ursprüngliche Liste basierend auf den Werten in eine neue Liste um von der Lambda-Funktion zurückgegeben. Lassen Sie uns veranschaulichen:
Beispiel:
sorted([3, 6, 3, 2, 4, 8, 23], key=lambda x: x % 2)
Lambda-Funktion:
lambda x: x % 2
Originalliste:
[3, 6, 3, 2, 4, 8, 23]
Transformierte Liste:
[0, 1, 0, 1, 1, 1, 0] # 0 indicates odd, 1 indicates even
Sortierte Liste:
[3, 3, 23, 6, 2, 4, 8] # Odd numbers first, then even numbers
Die transformierte Liste ist im Wesentlichen eine Maske, die die Eigenschaft enthüllt, nach der wir sortieren möchten, in diesem Fall ungerade/gerade. Sorted() sortiert dann die ursprüngliche Liste anhand der Reihenfolge der transformierten Werte, was zur gewünschten Sortierreihenfolge führt.
Die Vielseitigkeit von Lambda-Funktionen ermöglicht komplexe Sortierszenarien . Die folgende Lambda-Funktion sortiert beispielsweise eine Liste von Tupeln basierend auf dem zweiten Element:
sorted([(3, 5, 8), (6, 2, 8), (2, 9, 4), (6, 8, 5)], key=lambda x: x[1])
Das Ergebnis ist eine sortierte Liste basierend auf dem zweiten Element jedes Tupels.
Nach Verständnis Mit der Syntax und dem Konzept hinter Lambda-Funktionen im Schlüsselargument sorted() können Sie Ihre Sortierlogik effektiv für verschiedene Szenarien anpassen.
Das obige ist der detaillierte Inhalt vonWie kann ich Lambda-Funktionen innerhalb des „key'-Arguments der Funktion „sorted()' verwenden, um die Sortierung in Python anzupassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!