Sortieren einer verschachtelten Liste mit absteigenden und aufsteigenden Elementen
In Python können Sie auf Szenarien stoßen, in denen Sie eine Liste mit verschachtelten Listen sortieren müssen mit bestimmten Sortierkriterien. Stellen Sie sich eine Liste wie diese vor:
['a',1] ['a',2] ['a',3] ['b',1] ['b',2] ['b',3]
Die Aufgabe besteht darin, diese Liste so zu sortieren, dass Element 0 (der Buchstabe) in absteigender Reihenfolge sortiert wird, während Element 1 (die Zahl) in aufsteigender Reihenfolge sortiert wird. Die resultierende Liste sollte wie folgt aussehen:
['b',1] ['b',2] ['b',3] ['a',1] ['a',2] ['a',3]
Um diese Sortierung zu erreichen, können wir die integrierte Sortierfunktion von Python zusammen mit einer benutzerdefinierten Tastenfunktion verwenden, die nach mehreren Kriterien sortiert. Die Schlüsselfunktion nimmt jede verschachtelte Liste als Eingabe und generiert ein Tupel, das als Sortierschlüssel dient.
Der folgende Codeausschnitt zeigt, wie die verschachtelte Liste mithilfe der benutzerdefinierten Schlüsselfunktion sortiert wird:
<code class="python">L = [['a',1], ['a',2], ['a',3], ['b',1], ['b',2], ['b',3]] L.sort(key=lambda k: (k[0], -k[1]), reverse=True)</code>
In diesem Code generiert die Schlüsselfunktion ein Tupel unter Verwendung des ersten Elements (Buchstaben) und der Negation des zweiten Elements (Zahl). Durch Negieren des zweiten Elements können wir die aufsteigende Sortierung für Zahlen durchführen. Das zusätzliche Argument reverse=True in der Sortierfunktion sorgt für eine absteigende Sortierung basierend auf dem Tupelschlüssel.
Dadurch wird die Liste L nun wie gewünscht sortiert:
[['b', 1], ['b', 2], ['b', 3], ['a', 1], ['a', 2], ['a', 3]]
Dieser Ansatz bietet eine vielseitige Möglichkeit, komplexe Datenstrukturen wie verschachtelte Listen mit mehreren Sortierkriterien zu sortieren.
Das obige ist der detaillierte Inhalt vonWie sortiere ich eine verschachtelte Liste mit absteigenden und aufsteigenden Elementen in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!