我有一个词典列表。每个字典代表一个事件,并具有以下形式:
event1 = {'name': 'event1', 'date':'2015-03-25', 'location':'stackexchange'}
如何将事件分组到每个日历周(从星期一或星期日开始),并计算每个日历周的事件数量?例如。输出可以是子列表的列表,每个子列表代表相应周内的事件列表。
在我的代码中,每个'日期' value可以表示为字符串或datetime.date
对象。我在datetime
模块和calendar
模块中搜索了标准库,但没有找到进行分组的函数。
答案 0 :(得分:2)
您必须根据您可以从该日期获得的信息进行分组。如果您存储datetime.date()
个对象,则可以使用datetime.date.isocalendar()
method按年份+周数对字典进行分组:
grouped = {}
for event in list_of_events:
key = tuple(event['date'].isocalendar()[:1])
grouped.setdefault(key, []).append(event)
然后,您最终得到一个字典,其中包含按(year, week)
元组分组的事件。