以下是一个示例代码,用于按周计算活动观察的数量:
import datetime
# 模拟活动观察列表,每个元素表示一个活动的观察时间
activity_observations = [
datetime.datetime(2022, 1, 1),
datetime.datetime(2022, 1, 5),
datetime.datetime(2022, 1, 10),
datetime.datetime(2022, 1, 12),
datetime.datetime(2022, 1, 20),
]
def count_observations_by_week(observations):
# 创建一个字典,用于存储每周的观察数量
observations_by_week = {}
for observation in observations:
# 获取每个观察的年份和周数
year = observation.isocalendar()[0]
week = observation.isocalendar()[1]
# 创建一个表示年份和周数的元组作为字典的键
week_key = (year, week)
# 如果该周的键已存在,则将该周的观察数量加1
if week_key in observations_by_week:
observations_by_week[week_key] += 1
else:
observations_by_week[week_key] = 1
return observations_by_week
# 调用函数并打印结果
observations_by_week = count_observations_by_week(activity_observations)
print(observations_by_week)
该代码使用datetime
模块来处理日期和时间。activity_observations
列表模拟了一些活动观察的时间。count_observations_by_week
函数遍历观察列表,使用isocalendar
方法获取每个观察的年份和周数。然后,使用一个字典来存储每周的观察数量,键为表示年份和周数的元组,值为观察数量。最后,打印出所有周的观察数量。