Ich habe eine sehr lange Liste von datetime
s chronologisch sortiert (monoton steigend, wenn Sie bevorzugen). Stellen Sie sich vor etwas wie folgt aus:Tage, Stunden und Sekunden aus einer Liste von Datumsangaben extrahieren
import datetime
dates=[datetime.datetime.fromtimestamp(xx) for xx in xrange(huge_number)]
der Unterschied in Bezug auf meine wirkliche Liste ist, dass der Zeitschritt nicht immer konstant ist, und es gibt in der Regel Lücken zwischen Sekunden, Stunden oder Tage.
Was ich tun möchte, ist ein Benutzer (über eine PyQt4 GUI) eine genaue Datumzeit wählen zu machen, und was ich vermute, dies zu tun:
- alle verschiedenen Tagen in
datetimes_list
- enthalten erhalten für jeden Tag, um eine Liste mit allen verschiedenen Stunden bauen bis heute
- für jede Stunde entspricht, die die vollständige Liste der Zeitpunkte erhalten zu dieser Stunde
sicher entspricht, I kann dies mit einigen for/if-Schleifen tun, aber ich frage mich, ob es eine effiziente und kompakte Möglichkeit gibt, dies zu tun, vielleicht mit itertools
und groupby
Iterator. Aber wenn ich mich wirklich nicht wohl fühle mit itertools
, also wenn jemand eine Idee hat, wäre das toll!
Spezifische Datumsangaben finden Sie in Ihrer sortierten Liste mit [bisect] (https://docs.python.org/3.0/library/bisect.html). Sie sollten (wahrscheinlich) Ihre Listen 2 und 3 dynamisch erstellen, wenn der Benutzer einen Eintrag aus der vorherigen Liste auswählt. –
Hinweis: Die Ortszeit ist nicht unbedingt monoton (zB aufgrund von DST - Übergängen) und daher sind die Ergebnisse von 'fromtimestamp()' in Ihrem Fall nicht unbedingt erhöht (abhängig von Ihrer lokalen Zeitzone) – jfs