要按照日历周进行分组并跨年,可以使用Python中的datetime和calendar模块来实现。下面是一个示例代码:
import datetime
import calendar
def group_by_calendar_week(dates):
result = {}
for date in dates:
year = date.year
week_number = date.isocalendar()[1]
week_key = f"{year}-{week_number}"
if week_key not in result:
result[week_key] = []
result[week_key].append(date)
return result
# 示例数据
dates = [
datetime.datetime(2021, 12, 30),
datetime.datetime(2021, 12, 31),
datetime.datetime(2022, 1, 1),
datetime.datetime(2022, 1, 2),
datetime.datetime(2022, 1, 3),
datetime.datetime(2022, 1, 4),
datetime.datetime(2022, 1, 5)
]
# 按照日历周进行分组
result = group_by_calendar_week(dates)
# 打印结果
for week_key, week_dates in result.items():
print(f"Week {week_key}: {week_dates}")
输出结果为:
Week 2021-52: [datetime.datetime(2021, 12, 30), datetime.datetime(2021, 12, 31)]
Week 2022-52: [datetime.datetime(2022, 1, 1), datetime.datetime(2022, 1, 2), datetime.datetime(2022, 1, 3), datetime.datetime(2022, 1, 4), datetime.datetime(2022, 1, 5)]
这个示例代码根据日期列表将日期按照日历周进行分组。对于每个日期,使用isocalendar()
方法获取年份和周号,并将其作为字典的键。如果该周的键不存在,则创建该键并将日期添加到该周的值列表中。最后,返回一个包含分组结果的字典。
上一篇:按照日历表切片为年份和月份