Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Listen mit mehreren Attributen in Python effizient sortieren?
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]]
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]))
Itemgetter verwenden (schneller) :
import operator s = sorted(s, key = operator.itemgetter(1, 2))
Zusätzlich kann die Sortiermethode direkt mit dem bereitgestellten verwendet werden Schlüssel:
s.sort(key = operator.itemgetter(1, 2))
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!