以下是一个示例代码,演示如何按照与第一个日期之间的日期差异将日期列表分组:
from datetime import datetime, timedelta
def group_dates(date_list):
# 将日期列表按照日期差异分组
groups = []
current_group = [date_list[0]]
for i in range(1, len(date_list)):
diff = date_list[i] - date_list[i-1]
if diff == timedelta(days=1):
current_group.append(date_list[i])
else:
groups.append(current_group)
current_group = [date_list[i]]
groups.append(current_group)
return groups
# 示例数据
dates = [
datetime(2021, 1, 1),
datetime(2021, 1, 2),
datetime(2021, 1, 3),
datetime(2021, 1, 5),
datetime(2021, 1, 6),
datetime(2021, 1, 8),
datetime(2021, 1, 9)
]
# 调用函数进行分组
date_groups = group_dates(dates)
# 打印结果
for group in date_groups:
print(group)
输出结果为:
[datetime.datetime(2021, 1, 1, 0, 0), datetime.datetime(2021, 1, 2, 0, 0), datetime.datetime(2021, 1, 3, 0, 0)]
[datetime.datetime(2021, 1, 5, 0, 0), datetime.datetime(2021, 1, 6, 0, 0)]
[datetime.datetime(2021, 1, 8, 0, 0), datetime.datetime(2021, 1, 9, 0, 0)]
这个示例代码中的group_dates
函数接受一个日期列表作为输入,并返回按照日期差异分组的结果。在函数内部,我们使用一个current_group
列表来保存当前的分组,然后遍历日期列表,计算当前日期与前一个日期的差异。如果差异为1天,则将当前日期添加到当前分组中;否则,将当前分组添加到结果列表groups
中,并创建一个新的空分组。最后,将最后一个分组添加到结果列表中。
这个示例代码使用了Python的datetime
模块来处理日期和时间。timedelta
类用于表示日期和时间之间的差异。在示例中,我们假设日期列表是按照升序排列的。如果日期列表是乱序的,可以在开始之前对日期列表进行排序操作。