Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich eine Liste von Listen in Python effizient nach mehreren Attributen sortieren?

Wie kann ich eine Liste von Listen in Python effizient nach mehreren Attributen sortieren?

Barbara Streisand
Freigeben: 2024-12-10 22:52:15
Original
230 Leute haben es durchsucht

How Can I Efficiently Sort a List of Lists by Multiple Attributes in Python?

Multi-Attribut-Sortierung in Listen

Das Sortieren einer Liste nach einem einzelnen Attribut ist mit der Python-Funktion sorted() und dem Schlüsselargument unkompliziert. Das Sortieren nach mehreren Attributen stellt jedoch eine Herausforderung dar.

Problemformulierung:

Wie können wir eine Liste von Listen schnell nach mehreren Attributen sortieren, wie z. B. den im ursprüngliche Frage?

Lösung:

Es gibt zwei effiziente Methoden für Multiattribute Sortieren in Listen:

  1. Verwenden einer Lambda-Funktion als Schlüssel:

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

    Diese Lambda-Funktion nimmt jede Unterliste x und gibt ein Tupel zurück Enthält das zweite und dritte Element und gibt effektiv die Sortierreihenfolge basierend auf beiden an Attribute.

  2. **Mit Operator.itemgetter():

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

    operator.itemgetter() gibt eine Funktion zurück, die die angegebenen Elemente aus jeder Unterliste extrahiert und aktiviert Sortierung basierend auf mehreren Attributen.

In beiden Fällen wird die Sortierreihenfolge durch die Reihenfolge der bestimmt Attributindizes, die in den Schlüsselfunktions- oder Itemgetter-Argumenten angegeben sind.

Zusätzlicher Hinweis:

Für die direkte Sortierung können Sie s.sort() direkt mit dem entsprechenden verwenden Tastenfunktion:

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

Das obige ist der detaillierte Inhalt vonWie kann ich eine Liste von Listen in Python effizient nach mehreren Attributen sortieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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