我有一个这种格式的时间戳列表:“2016-08-01 13:02:57”或“%Y-%m-%d-%H-%M-%S-%f”
我想获取每天的第一次和最后一次。因此,如果有两天 8/1 和 7/29,函数将返回 4 个值。例如:
8/1
first: '2016-08-01 13:02:57'
last: '2016-08-01 13:08:44'
7/29
first: '2016-07-29 14:34:02'
last: '2016-07-29 14:37:35'
第一次是当天最先发生的,最后一次是当天最后发生的。
最佳答案
按年-月-日分组然后得到最小值和最大值:
from collections import defaultdict
d = defaultdict(list)
dates = ['2016-08-01 13:02:54',............]
for dte in dates:
key, _ = dte.split()
d[key].append(dte)
for k,v in d.items():
print(min(v), max(v))
由于您不需要将日期格式转换为日期时间,因此字典顺序比较可以正常工作。您可以制作一个在一个循环中执行最小值和最大值的函数,但它可能不如内置函数快。
关于python - 使用 Python datetime 获取每天的第一个和最后一个时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39026297/