我有像 "2017-05-01", "2017-05-18"
这样的日期范围。所以,我想按每日间隔分割这个范围并得到这样的结果:[["2017-05-01","2017-05-02"], ["2017-05-3","2017-05-04"], ....]
最佳答案
首先,将其分解为两个步骤:
第一步,这里有一个答案:Iterating through a range of dates in Python
其中定义了以下生成器:
from datetime import timedelta, date
def daterange(start_date, end_date):
for n in range(int ((end_date - start_date).days)):
yield start_date + timedelta(n)
如果我们然后使用 the itertools documentation 中的这个定义将它们配对:
def grouper(iterable, n, fillvalue=None):
"Collect data into fixed-length chunks or blocks"
# grouper('ABCDEFG', 3, 'x') --> ABC DEF Gxx"
args = [iter(iterable)] * n
return zip_longest(*args, fillvalue=fillvalue)
那么我们可以将它们组合在一起以制作所需的生成器:
daypairs = grouper(daterange(start_date, end_date), 2)
并列出它:
daypairslist = list(daypairs)
等等。
关于python - 按天分割日期范围并使用Python制作列表日期间隔列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44071541/