我有一个非常长的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