我有一個非常長的datetime
s按時間順序排序的列表(如果您願意,單調遞增)。試想一下,這樣的事情:從日期時間列表中提取日,小時和秒
import datetime
dates=[datetime.datetime.fromtimestamp(xx) for xx in xrange(huge_number)]
對於我真正的名單不同的是,時間步長並不恆定,並有通常以秒,小時或天之間的差距。
我想要做的就是讓用戶選擇(通過PyQt4的GUI)精確的日期時間,什麼我猜這樣做:
- 得到包含了所有不同天
datetimes_list
- 爲每一天,建立對應於這一天
- 每個小時都不同小時列表,獲取對應於此小時
爲了確保瞬間的完整列表,我可以用一些for/if循環來做到這一點,但我想知道是否有一種高效且緊湊的方法來做到這一點,也許使用itertools
和groupby
迭代器。但如果我真的不喜歡itertools
,那麼如果有人有一個好主意!
您可以使用[bisect](https://docs.python.org/3.0/library/bisect.html)在排序列表中找到特定的日期時間。您應該(可能)動態構建您的2和3列表,以響應用戶從上一個列表中選擇條目。 –
注意:本地時間不一定是單調的(例如,由於DST轉換),因此'fromtimestamp()'的結果不一定會增加(取決於您當地的時區) – jfs