Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich eine Liste basierend auf mehreren Attributen in Python effizient sortieren?

Wie kann ich eine Liste basierend auf mehreren Attributen in Python effizient sortieren?

DDD
Freigeben: 2024-12-11 18:02:13
Original
354 Leute haben es durchsucht

How Can I Efficiently Sort a List Based on Multiple Attributes in Python?

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]]
Nach dem Login kopieren

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])
Nach dem Login kopieren

Mit dieser Tastenfunktion kann die Liste wie folgt sortiert werden:

s = sorted(s, key=key)
Nach dem Login kopieren

Alternativ itemgetter () kann verwendet werden, um das gleiche Ergebnis effizienter zu erzielen:

import operator
key = operator.itemgetter(1, 2)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage