PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Liste sortieren



Mandos
19-10-2008, 21:04
Hallo,
ich bin nicht so der python-crack und bei etwas komplizierterem Sortieren geht mir die Fantasie aus.
Folgendes Problem: Ich hab eine Liste, die z.B. so aussehen kann:

['2,17', '20,6','8,33-34.', '8,33', '8,37-59', '1,42','8,33-35','8,44', '2,10', '2,13','5']

Diese Liste möchte ich gerne sortieren und zwar erst nach der Zahl vor dem Komma und dann nach der Zahl nach dem Komma...das würde in diesem Beispiel dann so aussehen:

['1,42', '2,10', '2,13', '2,17', '5', '8,33', '8,33-34', '8,33-35', '8,37-59', '8,44', '20,6']

Dadurch, dass das strings sind ist die list.sort()-Funktion etwas blöd, weil er dann sowas produziert:
['1,42', '2,10', '2,13', '2,17', '20,6', '5', '8,33', '8,33-34.', '8,33-35', '8,37-59', '8,44']

Da ist dann '20,6' nicht am Ende sondern in der Mitte, weil er halt nicht die Zahlen erkennt und nur ein Zeichen nach dem anderen vergleicht. Nun hatte ich versucht das in zwei Listen zu teilen mit dem ersten und dem zweiten Teil enthalten, aber weiter wusste ich dann auch nicht wirklich und in float kann man das mit den Bindestrichen und Kommata ja auch nicht umwandeln :/ Weiß hier jemand, wie man das ohne viel Aufwand lösen kann?

EDIT:
Achso, ich hab noch eine zweite Liste mit Zahlen, die der ersten List zugeordnet sind. Wenn also die erste (komplexere) Liste umgeordnet wird, dann müsste die zweite auf die gleiche Weise umgeordnet werden..das macht die Sache dann noch etwas komplizierter.