Listen von Listen in abwechselnder Reihenfolge sortieren
Gegeben sei eine Liste mit Unterlisten im Format [['a',1], [' a',2], ['a',3], ['b',1], ['b',2], ['b',3]], das Ziel besteht darin, diese Unterlisten abwechselnd zu sortieren , wobei Element 0 in absteigender Reihenfolge und Element 1 in aufsteigender Reihenfolge sortiert ist. Das erwartete Ergebnis ist [['b',1], ['b',2], ['b',3], ['a',1], ['a',2], ['a', 3]].
Um dies zu erreichen, kann man die Funktion sort() mit einem benutzerdefinierten Schlüssel nutzen. Der Schlüssel ist eine Lambda-Funktion, die die interessierenden Elemente extrahiert und eine Sortieroperation auf sie anwendet. In diesem Fall ruft es das erste Element jeder Unterliste ab, wendet eine absteigende Sortierung an und kombiniert es dann mit dem Negativ des zweiten Elements, sortiert in aufsteigender Reihenfolge. Durch Umkehren der Sortierreihenfolge mit reverse=True werden die Unterlisten absteigend nach dem ersten Element und aufsteigend nach dem zweiten Element sortiert. Dadurch ergibt sich die gewünschte alternierende Reihenfolge.
Der folgende Codeausschnitt demonstriert die Lösung:
<code class="python">L = [['a',1], ['a',2], ['a',3], ['b',1], ['b',2], ['b',3]] L.sort(key=lambda k: (k[0], -k[1]), reverse=True) print(L) # [['b', 1], ['b', 2], ['b', 3], ['a', 1], ['a', 2], ['a', 3]]</code>
Das obige ist der detaillierte Inhalt vonWie sortiere ich Listen von Listen in abwechselnder Reihenfolge in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!