给定具有以下结构的列表:
[start_date_cycle1, end_date_cycle1, start_date_cycle2, end_date_cycle2, ..., end_date_cycleK]
在所有元素都是时间戳的情况下,我想得到以下信息
[[start_date_cycle1, start_date_cycle1 +1d, start_date_cycle1 +2d, ..., end_date_cycle1],
[start_date_cycle2, start_date_cycle2 +1d ...]]
因此,如果输入为['10-23-2019', '10-26-2019' , '11-02-2019', '11-06-2019']
,则输出为:
[['10-23-2019', '10-24-2019','10-25-2019', '10-26-2019'] ,
['11-02-2019', '11-03-2019','11-04-2019','11-05-2019','11-06-2019']]
注意:列表的长度将始终是偶数(因此没有循环的开始就没有结束)
这是一种使用
datetime
模块的方法Ex:
输出:
您可以将字符串解析为
datetime
对象,使用它们进行必要的计算(通过添加timedelta
对象),然后在最后转换回字符串要以嵌套列表的形式生成输出,如问题中所述,临时变量
dates_out
用于生成内部列表,这些列表附加到循环内的主列表(out
)如果要使用日-月-年排序,请在发生的位置将
'%m-%d-%Y'
更改为'%d-%m-%Y'
这使得:
(为便于阅读,插入了换行符)
您可以使用
dateutil
模块轻松地实现这一点。您可以通过执行pip install python-dateutil
来安装它map(parse, lst)
将日期从字符串转换为日期时间对象zip(*[map(parse, lst)]*2)
将创建日期时间对象对,以便您可以将它们作为(start,end)
对进行导航。最后rrule(freq=DAILY, dtstart=start, until=end)
从开始到结束创建一系列datetime对象相关问题 更多 >
编程相关推荐