Listensortierung nach mehreren Attributen
Das Sortieren einer Liste basierend auf einem einzelnen Attribut ist unkompliziert. Wenn jedoch mehrere Attribute die Sortierreihenfolge bestimmen, ist ein komplexerer Ansatz erforderlich.
Betrachten Sie die folgende Liste von Listen:
[[12, 'tall', 'blue', 1], [2, 'short', 'red', 9], [4, 'tall', 'blue', 13]]
Sortieren Sie diese Liste ausschließlich nach „groß“ oder „ Das Attribut „short“ kann mithilfe von sorted(s, key = itemgetter(1)) erreicht werden. Wenn die Sortierreihenfolge jedoch sowohl auf den Höhen- als auch auf den Farbattributen basieren muss, ist eine effizientere Lösung erforderlich.
Multi-Attribut-Tastenfunktionen
Zum Sortieren eines Nach mehreren Attributen auflisten, kann eine Schlüsselfunktion definiert werden, die ein Tupel zurückgibt, das die gewünschte Sortierreihenfolge darstellt. Beispielsweise sortiert die folgende Tastenfunktion zuerst nach Höhe und dann nach Farbe:
key = lambda x: (x[1], x[2])
Mit dieser Tastenfunktion kann die Liste wie folgt sortiert werden:
s = sorted(s, key=key)
Alternativ itemgetter () kann verwendet werden, um das gleiche Ergebnis effizienter zu erzielen:
import operator key = operator.itemgetter(1, 2)
Diese Schlüsselfunktion ist sowohl schneller als auch erfordert keine Python-Funktion Aufruf.
Direkte Sortierung
Schließlich kann der obige Ansatz weiter vereinfacht werden, indem die Methode sort() anstelle von sorted() verwendet und neu zugewiesen wird. Dadurch entfällt die Notwendigkeit, eine neue Liste zu erstellen:
s.sort(key=key)
Das obige ist der detaillierte Inhalt vonWie kann ich eine Liste basierend auf mehreren Attributen in Python effizient sortieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!