python - 根据给定的日期范围获取星期一和星期日
问题描述
是否可以获取所有星期一和星期日并将其存储在嵌套列表/元组中。
Sample data:
dates = [2010-01-01, 2010-01-04, 2010-01-05, 2010-01-06, 2010-01-08, 2010-01-10, 2010-01-11, 2010-01-15, 2010-01-17]
Expected result:
result = ([2010-01-04, 2010-01-10], [2010-01-11, 2010-01-17])
为了澄清预期结果,我想result
与([Monday, Sunday], [Monday, Sunday])
.
解决方案
from datetime import datetime
dates = ['2010-01-01', '2010-01-04', '2010-01-05', '2010-01-06',
'2010-01-08', '2010-01-10', '2010-01-11', '2010-01-15',
'2010-01-17']
def weekday(date_str):
return datetime.strptime(date_str, '%Y-%m-%d').weekday()
result = [[date for date in dates if weekday(date) == n] for n in {6, 0}]
print(result)
>>> [['2010-01-04', '2010-01-11'], ['2010-01-10', '2010-01-17']]
推荐阅读
- java - 在 WebSphere 9 上的 JSF 2.2 中管理 bean
- ios - 使用 iOS 将图像上传到在线存储的最佳(或最佳)做法是什么?
- docker - Apache Cassandra cqlsh --keyspace 被忽略
- vb.net - 如何在 VB.NET 中检测到 USB 设备时使 WinForm 控件可见 = True
- python - 如何在 30 个数据帧中重复相同的任务 - Python Pandas
- c - 为什么这段代码的时间复杂度是 O(n^2)?
- python - PyGnuplot 安装不工作
- amazon-web-services - AWS Transcribe: 失败 ('Connection aborted.', error(54, 'Connection reset by peer'))
- coordinates - 将 ECEF (XYZ) 协方差矩阵转换为 ENU 协方差矩阵
- r - 对数据框的多列进行分位数排名并改变结果