Seite 1 von 1

Liste in Liste nach Datum sortieren

Verfasst: Freitag 30. Oktober 2015, 16:04
von DMD
hey leute
ich habe folgende liste:

Code: Alles auswählen

reihe = [['08.10.2015', 'F', '15', '45', '6', '4', '2.0'], ['12.10.2015', 'G', '15', '45', '9', '9', '0.0'], ['05.10.2015', 'A', '15', '45', 1.0, '---', '---'], ['05.10.2015', 'B', '15', '45', 2.0, '---', '---'], ['05.10.2015', '---', '---', '---', 3.0, 9.0, -6.0], ['07.10.2015', 'C', '15', '45', 3.0, '---', '---'], ['07.10.2015', 'D', '15', '45', 4.0, '---', '---'], ['07.10.2015', 'E', '15', '45', 9.0, '---', '---'], ['07.10.2015', '---', '---', '---', 16.0, 9.0, 7.0], ['19.10.2015', 'H', '15', '45', 9.0, '---', '---'], ['19.10.2015', 'I', '15', '45', 9.0, '---', '---'], ['19.10.2015', 'J', '15', '45', 8.0, '---', '---'], ['19.10.2015', '---', '---', '---', 26.0, 9.0, 17.0]]
die würde ich gern nach datum sortiert ausgeben.
leider finde ich dazu nichts im netz :(

Re: Liste in Liste nach Datum sortieren

Verfasst: Freitag 30. Oktober 2015, 16:10
von Hyperion
In der Doku hast Du vermutlich nicht geguckt? Da wird sogar ein spezielles Tutorial verlinkt.

Eigentlich braucht man ``sorted`` nur mit der Liste aufrufen ;-)

Re: Liste in Liste nach Datum sortieren

Verfasst: Freitag 30. Oktober 2015, 16:16
von /me
Hyperion hat geschrieben:Eigentlich braucht man ``sorted`` nur mit der Liste aufrufen ;-)
Uneigentlich muss man das erste Element jeder inneren Liste noch in ein ordentliches Datum konvertieren.

Re: Liste in Liste nach Datum sortieren

Verfasst: Freitag 30. Oktober 2015, 16:27
von Hyperion
/me hat geschrieben: Uneigentlich muss man das erste Element jeder inneren Liste noch in ein ordentliches Datum konvertieren.
Das war ja nicht die Frage... ging ja konkret um *gezeigte* Liste mit den speziellen Werten... damit klappt das so :P

Re: Liste in Liste nach Datum sortieren

Verfasst: Freitag 30. Oktober 2015, 19:58
von Sirius3
@Hyperion: auch im spitzfindigsten Lesen heißt "nach dem Datum sortieren", dass erst nach Jahr, dann nach Monat und dann nach Tag sortiert werden soll.

@DMD: diese Liste sehen wir ja jetzt nicht zum ersten Mal und jedes Mal wieder wirst Du darauf hingewiesen, dass Du die Einträge in ein sinnvolles Format konvertieren solltest, also Datum zu datetime-Objekt, Zahlen nach int oder float, usw. und das ganze in ein Objekt oder (named)Tuple. Das sollte Dir doch endlich mal zu denken geben :evil: .

Re: Liste in Liste nach Datum sortieren

Verfasst: Freitag 30. Oktober 2015, 20:39
von noisefloor
Hallo,

billiger Würg-Around: schreibe das Datum im ISO 8601 Format in die Liste, dann ist auch die Sortierung mit `sorted` korrekt :P

Gruß, noisefloor

Re: Liste in Liste nach Datum sortieren

Verfasst: Freitag 30. Oktober 2015, 21:17
von Hyperion
Sirius3 hat geschrieben:@Hyperion: auch im spitzfindigsten Lesen heißt "nach dem Datum sortieren", dass erst nach Jahr, dann nach Monat und dann nach Tag sortiert werden soll.
Im spitzfindigen Modus fragte der OP aber nach *dieser* Liste - und dabei ist das Ergebnis exakt dasselbe, auch wenn die Sortierung *nicht* in dieser Reihenfolge erledigt wird.

Natürlich war der Hinweis von /me richtig und ja, ich habe das vorhin schlicht übersehen, weil ich beim OP sofort an das naheliegende dachte, dass er keinen Plan hat, *wie* man an sich sortiert. Und ehrlich gesagt glaube ich das auch immer noch, dass das zunächst sein eigentliches Problem war... und nebenbei zeigt er uns eh ständig Probleme mit suboptimalen Datenstrukturen, da fällt es schwer sich darauf noch zu konzentrieren ;-)

Re: Liste in Liste nach Datum sortieren

Verfasst: Freitag 30. Oktober 2015, 21:18
von DMD
thanx ich werd versuchen...

Re: Liste in Liste nach Datum sortieren

Verfasst: Freitag 30. Oktober 2015, 21:45
von DMD
jo funzt:

Code: Alles auswählen

reihe.sort(key=lambda x: datetime.datetime.strptime(x[0], '%d.%m.%Y'))
danke euch

Re: Liste in Liste nach Datum sortieren

Verfasst: Samstag 31. Oktober 2015, 10:39
von Sirius3
@DMD: eine stark typisierte Sprache wie Python ist nichts für Dich. Geh zu PHP. :evil: