Heim > Backend-Entwicklung > Python-Tutorial > Wie funktioniert die Funktion „sorted(key=lambda: ...)' zum Sortieren von Listen in Python?

Wie funktioniert die Funktion „sorted(key=lambda: ...)' zum Sortieren von Listen in Python?

Patricia Arquette
Freigeben: 2024-10-26 09:44:29
Original
411 Leute haben es durchsucht

How does the `sorted(key=lambda: ...)` function work for sorting lists in Python?

Verstehen der Syntax von sortiert(key=lambda: ...)` zum Sortieren von Listen

Die Funktion sorted() in Python bietet Folgendes eine prägnante Möglichkeit, eine Liste zu sortieren. Beim Sortieren komplexer Listen mit verschachtelten Elementen oder Tupeln können Sie die Sortierung mithilfe des Schlüsselarguments anpassen.

Lambda-Funktionssyntax

Die Lambda-Funktion im Schlüsselargument ist eine anonyme Funktion, die angibt, wie das Sortierkriterium für jedes Element in der Liste abgeleitet werden soll. Seine Syntax lautet:

lambda input_variable(s): expression
Nach dem Login kopieren
  • Eingabevariable(n): Die zu bearbeitende(n) Variable(n).
  • Ausdruck: Die Berechnung oder der zurückzugebende Wert.

Zum Beispiel:

<code class="python">f = lambda x: x + 1
f(10)  # Returns 11</code>
Nach dem Login kopieren

Schlüsselfunktion in sorted()

Im Kontext von sorted() die durch key=lambda angegebene Schlüsselfunktion wird auf jedes Element in der Liste angewendet und die Ergebnisse werden zur Bestimmung der Sortierreihenfolge verwendet. Die von der Lambda-Funktion zurückgegebenen Werte fungieren als Ersatzwerte für die Sortierung.

Mit diesem Mechanismus können Sie die Originalliste nach einer bestimmten Eigenschaft oder einem Merkmal jedes Elements und nicht nach den Elementen selbst sortieren. Sie können beispielsweise eine Liste von Tupeln nach ihrem zweiten Element sortieren:

<code class="python">mylist = [(3, 5, 8), (6, 2, 8), (2, 9, 4), (6, 8, 5)]
sorted(mylist, key=lambda x: x[1])

# Output: [(6, 2, 8), (3, 5, 8), (6, 8, 5), (2, 9, 4)]
# Sorted by the second element of each tuple</code>
Nach dem Login kopieren

Boolesche Werte und Sortierung

Wenn die Schlüsselfunktion einen booleschen Wert zurückgibt, wird der Die Sortierung basiert auf der Wahrhaftigkeit des Werts. Elemente mit True-Werten werden vor denen mit False-Werten platziert. Beachten Sie jedoch, dass die ursprüngliche Reihenfolge der Elemente mit demselben Wahrheitswert beibehalten wird:

<code class="python">mylist = [3, 6, 3, 2, 4, 8, 23]
sorted(mylist, key=lambda x: x % 2 == 0)

# Output: [3, 3, 23, 6, 2, 4, 8]
# Odd numbers (False) come before even numbers (True)
# Even numbers remain in their original order</code>
Nach dem Login kopieren

Verwendung des Schlüssels für komplexe Datenstrukturen

Die Schlüsselfunktion kann sein Wird mit komplexen Datenstrukturen verwendet, um bestimmte Attribute zu extrahieren und zu vergleichen. Betrachten Sie beispielsweise eine Liste von Wörterbüchern, die Schüler repräsentieren:

<code class="python">students = [
    {'name': 'John', 'age': 20},
    {'name': 'Alice', 'age': 22},
    {'name': 'Bob', 'age': 18},
]</code>
Nach dem Login kopieren

Um Schüler mithilfe der Funktion sorted() nach Alter zu sortieren, können Sie das Schlüsselargument mit einer Lambda-Funktion verwenden:

<code class="python">sorted(students, key=lambda x: x['age'])</code>
Nach dem Login kopieren

Diese Lambda-Funktion extrahiert das Altersattribut aus jedem Wörterbuch und gibt es zurück, sodass die Elemente nach Alter sortiert werden können.

Das obige ist der detaillierte Inhalt vonWie funktioniert die Funktion „sorted(key=lambda: ...)' zum Sortieren von Listen in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage