Muli Liste nach zwei Spalten sprtieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Net_Hans
User
Beiträge: 4
Registriert: Dienstag 21. Februar 2012, 15:02

Hallo,

ich habe eine Liste mit Unterlisten. Diese Liste hätte ich gerne so sortiert, das die erste Sortierung nach Spalte 1 und dann nach Spalte zwei Sortiert wird. Dabei hätte ich gerne in Spalte 1 die größere Zahl an erster Position in für Spalte 2 die jeweils kleinere Zahl zuerst.

in SQL sieht das glaube so aus:

Code: Alles auswählen

SELECT z1, z2, z3 FROM tab1 ORDER BY z1 DESC, z2 ASC
Meine Liste sieht wie folgt aus:

Code: Alles auswählen

[[1,3944,0],[0,0,0],[1,3922,0],[2,4033,0],[0,0,0],[0,0,0]]
als Resultat sollte nach der Sortierung folgendes raus kommen

Code: Alles auswählen

[[2,4033,0],[1,3922,0],[1,3944,0],[0,0,0],[0,0,0],[0,0,0]]
[2,4033,0]
[1,3922,0]
[1,3944,0]
[0,0,0]
[0,0,0]
[0,0,0]

Wie müsste der Befehl im Python dazu aussehen?

mfG Hans
BlackJack

@Net_Hans: Dazu haben Listen eine `sort()`-Methode der Du eine entsprechende Funktion als `key`-Argument übergeben müsstest. Also zum Beispiel ``lambda row: (-row[0], row[1])``.
Net_Hans
User
Beiträge: 4
Registriert: Dienstag 21. Februar 2012, 15:02

Danke das mit "lambda" werde ich mir angucken.

mfG Hans
Antworten