Ich habe eine Liste von Flügen, die am Abflugdatum zuerst sortiert werden und dann nach der Gesamtflugdauer sortiert werden müssen, wobei ihre Reihenfolge nach dem Datum gehalten wird.Sortierliste nach mehreren Methoden
- Das Abflugdatum aufrufen ist eine Methode des Objekts "Flight".
- Das Aufrufen der Flugdauer ist ebenfalls eine Methode des Objekts "Flight".
Ausgabe sollte:
- 04-07-2017 Flugzeit: 05:00
- 04-07-2017 Flugzeit: 06:00
- 2017.05.07 Flugzeit: 04 00
- 05-07-2017 Flugzeit: 05:00
ich habe versucht:
sorted(flights, key=methodcaller('date','flighttime'))
aber Methode Anrufer nimmt nur 1 Argument. Ich habe auch zuerst groupby versucht und dann nach Flugzeit sortiert, aber dann wird die Liste nur nach Flugzeit sortiert.
danke
Dank! Und wenn ich die Datumsreihenfolge beibehalten möchte, aber die Flugzeit-Reihenfolge umkehren? Also nur auf den zweiten Schlüssel umkehren? – Ward
Wenn die Flugzeit numerisch ist, können Sie den zweiten Schlüssel einfach umkehren: 'sortiert (flights, key = lambda x: (x.date(), - x.flighttime())' –
Nein, es ist ein Timedelta, aber es hat funktioniert indem du die - in Front stellst! Danke – Ward