首页 > 解决方案 > 根据给定的日期范围获取星期一和星期日

问题描述

是否可以获取所有星期一和星期日并将其存储在嵌套列表/元组中。

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]).

标签: python

解决方案


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']]

推荐阅读