如何按字符串中的yyyymmdd格式日期子串对字符串列表进行排序
链接按日期排序实现方案
基于你已编写的逻辑,直接使用Python内置sorted函数的key参数指定排序规则即可完成需求,无需手动遍历列表处理,完整可运行代码如下:
import datetime def sort_bydate(links): # 升序排序,最早的日期排在最前 return sorted(links, key=lambda l: datetime.datetime.strptime(l[48:56], '%Y%m%d'))
如果需要最新日期排在最前的降序排序,添加reverse=True参数即可:
import datetime def sort_bydate_desc(links): # 降序排序,最新的日期排在最前 return sorted(links, key=lambda l: datetime.datetime.strptime(l[48:56], '%Y%m%d'), reverse=True)
注意事项
- 运行前需要确保已经导入
datetime模块,否则会触发名称未定义报错 - 以上实现默认所有链接的8位
yyyymmdd格式日期固定处于索引48到56的位置,如果后续遇到日期位置不固定的场景,可以改用正则提取日期,适配性更强:
import re import datetime def sort_bydate_universal(links): # 通用版本,自动提取链接中第一个8位数字作为日期排序 return sorted(links, key=lambda l: datetime.datetime.strptime(re.search(r'\d{8}', l).group(), '%Y%m%d'))
内容的提问来源于stack exchange,提问作者Tom Hardy
相关产品推荐
相关产品推荐

