Python中为日期列表的每个日期递增一天并扩展列表的最优方法
实现方法
最优方案是用Python标准库的datetime模块处理日期计算,避免手动操作字符串可能出现的边界错误(比如月底、闰年2月的特殊情况)。具体实现步骤如下:
- 导入
datetime模块中的date和timedelta类 - 遍历原日期列表,对每个日期执行:
- 将日期字符串解析为
date对象 - 计算该日期加一天后的日期
- 将原日期和新增日期依次加入结果列表
- 将日期字符串解析为
代码示例
from datetime import date, timedelta dates = ['2022-01-01', '2022-01-08', '2022-01-21'] dates_new = [] for d_str in dates: # 解析ISO格式的日期字符串为date对象 d = date.fromisoformat(d_str) # 计算加一天后的日期 next_day = d + timedelta(days=1) # 将原日期和新日期转为字符串后加入结果列表 dates_new.append(d_str) dates_new.append(next_day.isoformat()) print(dates_new) # 输出结果: ['2022-01-01', '2022-01-02', '2022-01-08', '2022-01-09', '2022-01-21', '2022-01-22']
说明
date.fromisoformat()专门处理YYYY-MM-DD格式的字符串,比strptime更简洁高效timedelta(days=1)能安全处理所有日期递增场景,比如2022-01-31加一天会自动转为2022-02-01- 结果严格遵循原列表顺序,每个原日期紧跟其递增后的日期
内容的提问来源于stack exchange,提问作者sampeterson
相关产品推荐
相关产品推荐

