如何创建一个词典,其中键在一年之内整个星期数,并在一周内每个工作日的日期列表



我正在为时间表创建一个日历。

我将如何创建一个包含一年数字的字典,因为Key的数字和值将是该一周的所有日期的清单。

我想创建一个循环以实现以下内容。

1年每周获取。

2每周的工作日,并将其转换为日期并放置他们进入这样的列表

  weekdays ['20/05/2019', '21/05/2019', '22/05/2019', '23/05/2019', 
            '24/05/2019', '25/05/2019', '26/05/2019']

3使用Weeknumber作为钥匙创建新的密钥和价值,并将工作日作为价值。

 weeks[weeknum] = weekdays

本周词典的内容看起来像这样,但所有52周。

 weeks {22: weekdays, 23: weekdays... etc} 

我可以使用Isocalander获得一个工作日和一个给定日期的工作日,但这还不足以实现我想做的事情。

最好的方法是什么?

我会在一年中的几天中迭代,然后将它们添加到每个星期号的列表中。如果您使用违约行为,则可以执行此操作,而无需初始化一周数字的dict:

import datetime
from collections import defaultdict
date = datetime.date(2019, 1, 1)
enddate = datetime.date(2019, 12, 31)
days_in_each_week = defaultdict(list)
while date < enddate:
    days_in_each_week[date.isocalendar()[1]].append(date.strftime("%d/%m/%Y"))
    date += datetime.timedelta(days=1)
print(days_in_each_week)

最新更新