以下是一个示例代码,演示如何按照日期和时间每24小时进行分组:
from datetime import datetime, timedelta
# 假设有一个日期时间列表
date_times = [
datetime(2022, 1, 1, 10, 30),
datetime(2022, 1, 1, 15, 45),
datetime(2022, 1, 2, 8, 0),
datetime(2022, 1, 2, 13, 15),
datetime(2022, 1, 3, 9, 30),
datetime(2022, 1, 3, 18, 0),
]
# 创建一个空的字典,用于存储每个24小时分组的日期时间列表
grouped_date_times = {}
# 对每个日期时间进行分组
for date_time in date_times:
# 找到该日期时间所属的分组
group_start = date_time.replace(hour=0, minute=0, second=0)
group_end = group_start + timedelta(hours=24)
# 将日期时间添加到相应的分组中
if group_start not in grouped_date_times:
grouped_date_times[group_start] = []
grouped_date_times[group_start].append(date_time)
# 打印每个分组的日期时间列表
for group_start, group_date_times in grouped_date_times.items():
print(f"分组起始时间:{group_start}")
for date_time in group_date_times:
print(date_time)
print()
输出结果如下:
分组起始时间:2022-01-01 00:00:00
2022-01-01 10:30:00
2022-01-01 15:45:00
分组起始时间:2022-01-02 00:00:00
2022-01-02 08:00:00
2022-01-02 13:15:00
分组起始时间:2022-01-03 00:00:00
2022-01-03 09:30:00
2022-01-03 18:00:00
以上代码首先创建了一个空字典 grouped_date_times
,用于存储每个分组的日期时间列表。然后使用循环遍历每个日期时间,找到其所属的分组起始时间,并将日期时间添加到相应的分组中。最后通过循环打印每个分组的日期时间列表。