python - 如何创建一个字典,其中键是一年内的所有周数,值是一周内每个工作日的日期列表?
问题描述
我正在为日程安排创建日历。
我将如何创建一个字典,其中包含一年的周数作为键,值将是该给定周的所有日期的列表。
我想创建一个循环来实现以下目标。
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 作为键和 weekdays 作为值,为周字典创建新键和值。
weeks[weeknum] = weekdays
周字典的内容看起来像这样,但所有 52 周。
weeks {22: weekdays, 23: weekdays... etc}
我可以使用 isocalander 获得给定日期的周数和工作日,但这不足以实现我想要做的事情。
解决这个问题的最佳方法是什么?
解决方案
我会遍历一年中的日子,然后将它们添加到每周编号的列表中。如果您使用 defaultdict,您可以这样做,而无需为周数初始化 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)
推荐阅读
- c# - 有没有办法使用 asp.net 在浏览器中显示 .DWG 文件
- node.js - 无法使用 cpanel 将 Nestjs 应用程序安装到主机
- python-3.x - sqlalchemy 表中是否可以有 python dict?如果是这样,知道如何声明该字段有什么帮助吗?
- excel - 循环遍历数据验证列表,选择多个工作表以打印到 PDF 或 Excel
- excel - 在 Excel 中使用 Range.Find 方法匹配用户名
- php - 从 PHP 中的 Sentry 事件中获取罪魁祸首
- python - 如果两边都存在,比较结果
- python - 即使我在 Windows 10 上有文件 tests.py,也可以在 0.000 秒内运行 0 次测试
- php - Twitter:OpenSSL SSL_read:对等方重置连接,errno 104
- java - 带通配符的 Elasticsearch multiMatchQuery