以下是一个示例代码,将一个包含日期的列表按照日期分割为子列表:
from datetime import datetime
def split_list_by_date(date_list):
# 将输入的日期字符串转换为datetime对象,并按日期排序
sorted_dates = sorted([datetime.strptime(date, '%Y-%m-%d') for date in date_list])
result = []
current_date = None
sublist = []
for date in sorted_dates:
if current_date is None:
current_date = date
sublist.append(date)
elif date.date() == current_date.date():
sublist.append(date)
else:
result.append(sublist)
sublist = [date]
current_date = date
# 将最后一个子列表添加到结果中
result.append(sublist)
return result
使用示例:
date_list = ['2022-01-01', '2022-02-01', '2022-01-02', '2022-02-02', '2022-01-03']
result = split_list_by_date(date_list)
print(result)
输出:
[[datetime.datetime(2022, 1, 1, 0, 0), datetime.datetime(2022, 1, 2, 0, 0), datetime.datetime(2022, 1, 3, 0, 0)], [datetime.datetime(2022, 2, 1, 0, 0), datetime.datetime(2022, 2, 2, 0, 0)]]
上述代码首先将输入的日期字符串转换为datetime对象,并进行排序。然后,遍历排序后的日期列表,将相同日期的元素添加到子列表中。当遇到不同日期时,将当前子列表添加到结果列表中,并创建新的子列表。最后,将最后一个子列表添加到结果中。最终返回结果列表,其中每个子列表表示相同日期的元素。