You need to enable JavaScript to run this app. Python中如何用列表推导式结合enumerate改写日期处理循环代码
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何用列表推导式结合enumerate改写日期处理循环代码

Python列表推导式改写方案

以下是和你原始代码逻辑完全等价的改写版本:

import datetime

# 生成过去60天的日期列表(顺序为60天前到昨天,无需额外删除/反转操作)
base = datetime.datetime.today()
date_list = [base - datetime.timedelta(days=x) for x in range(60, 0, -1)]

# 生成每个日期重复两次的字符串列表
dates = [date_str for val in date_list for date_str in (str(val)[:10], str(val)[:10])]

# 筛选出周末的日期字符串
weekend = [str(val)[:10] for val in date_list if val.isoweekday() in (6, 7)]

逻辑说明

  • 你原有循环中并没有用到enumerate返回的索引值idx,因此改写时不需要使用enumerate,逻辑更简洁
  • 优化了初始date_list的生成逻辑,通过调整range的遍历顺序,直接生成符合要求的日期序列,省去后续删除首项、反转列表的操作
  • dates的推导式用双层循环实现单个日期两次存入列表的效果,和你原有两次append的操作结果完全一致
  • weekend的推导式直接通过末尾的判断条件筛选周六、周日的日期,无需额外分支判断

内容的提问来源于stack exchange,提问作者antekkalafior

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 19:48:01