Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich Listen mit mehreren Attributen in Python effizient sortieren?

Wie kann ich Listen mit mehreren Attributen in Python effizient sortieren?

Linda Hamilton
Freigeben: 2024-12-15 17:05:17
Original
445 Leute haben es durchsucht

How Can I Efficiently Sort Lists with Multiple Attributes in Python?

Effektive Sortierung von Listen mit mehreren Attributen

Bei der Verwaltung von Listen ist es notwendig, diese effizient nach bestimmten Attributen zu sortieren. Ein häufiges Szenario entsteht, wenn wir nach mehreren Attributen gleichzeitig sortieren müssen, beispielsweise eine Liste mit Farben und Höhen.

Betrachten Sie die folgende Liste von Listen:

[[12, 'tall', 'blue', 1],
[2, 'short', 'red', 9],
[4, 'tall', 'blue', 13]]
Nach dem Login kopieren

Normalerweise wird nach sortiert Ein einzelnes Attribut kann mithilfe von sorted(s, key = itemgetter(1)) erreicht werden. Für mehrere Attribute gibt es jedoch einen effizienteren Ansatz.

Ein Schlüssel kann als Funktion definiert werden, die ein Tupel zurückgibt. Durch die Verwendung einer Lambda-Funktion oder eines Itemgetters können wir einen Schlüssel erstellen, der mehrere Attribute berücksichtigt:

Lambda-Funktion:

s = sorted(s, key = lambda x: (x[1], x[2]))
Nach dem Login kopieren

Itemgetter verwenden (schneller) :

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

Zusätzlich kann die Sortiermethode direkt mit dem bereitgestellten verwendet werden Schlüssel:

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

Mit diesem Ansatz wird die Liste effektiv basierend auf den angegebenen Attributen sortiert. Diese Methode ist erheblich schneller und vermeidet unnötige Python-Funktionsaufrufe.

Das obige ist der detaillierte Inhalt vonWie kann ich Listen mit 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage