Heim >Backend-Entwicklung >Python-Tutorial >Wie sortiere ich Listen nach mehreren Attributen in Python?
Das Sortieren von Daten ist ein grundlegender Aspekt vieler Programmieraufgaben. Beim Umgang mit komplexen Datenstrukturen ist es häufig erforderlich, nach mehreren Attributen zu sortieren. Dieser Artikel befasst sich mit der Frage, wie eine Liste von Listen nach mehreren Kriterien sortiert werden kann.
Der bereitgestellte Codeausschnitt zeigt eine Liste von Listen, wobei jede innere Liste ein Objekt mit verschiedenen Attributen darstellt. Das Ziel besteht darin, diese Liste nach zwei Attributen zu sortieren: dem Attribut „groß“ oder „klein“ und dem Farbattribut.
Itemgetter ist eine nützliche Funktion für Indizieren mehrerer Attribute in einem Tupel. Es verwendet mehrere Indizes als Argumente und gibt eine Funktion zurück, die diese Attribute aus einem bestimmten Tupel extrahiert. Mit itemgetter können Sie eine Schlüsselfunktion erstellen, die sowohl das Attribut „groß/kurz“ als auch das Farbattribut für die Sortierung berücksichtigt:
import operator s = sorted(s, key = operator.itemgetter(1, 2))
Eine andere Möglichkeit dazu Geben Sie eine Schlüsselfunktion für die Sortierung an und verwenden Sie Lambda-Funktionen. Lambda-Funktionen sind anonyme Funktionen, die inline definiert werden können. Die folgende Lambda-Funktion gibt ein Tupel der Attribute „groß/kurz“ und „Farbe“ zurück:
s = sorted(s, key = lambda x: (x[1], x[2]))
Mit einer dieser Methoden können Sie die Liste nach mehreren Kriterien sortieren. Das Ergebnis ist eine Liste von Listen, sortiert nach den angegebenen Attributen.
Im angegebenen Codeausschnitt wird „sorted“ verwendet, um eine neue sortierte Liste zurückzugeben. Sie können die Liste selbst jedoch auch direkt mit der Sortiermethode sortieren. Dadurch wird die ursprüngliche Liste an Ort und Stelle geändert:
s.sort(key = operator.itemgetter(1, 2))
Durch die Verwendung von Itemgetter- oder Lambda-Funktionen können Sie Schlüsselfunktionen definieren, um Listen nach mehreren Attributen zu sortieren. Diese Technik ist besonders nützlich beim Umgang mit komplexen Datenstrukturen und kann den Sortierprozess vereinfachen.
Das obige ist der detaillierte Inhalt vonWie sortiere ich Listen nach mehreren Attributen in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!