You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写Python函数实现列表内日期从最新到最早倒序排列

Python 倒序排列日期字符串函数实现

核心思路

  • 给定的日期字符串格式为日/月/年,无法直接按字符串字典序排序,需要先转换为可按时间先后比较的格式
  • 排序时开启倒序开关,即可实现越新的日期排在越靠前的位置

实现方案1:基于datetime模块(推荐,带合法性校验)

该方案会自动校验日期合法性,遇到格式错误/不存在的日期会主动抛出异常,适合输入来源不可控的场景:

from datetime import datetime

def sorting(date_list):
    # strptime将字符串按指定格式转为datetime对象,datetime本身支持大小比较
    # reverse=True表示从大到小(新日期到旧日期)排列
    return sorted(date_list, key=lambda x: datetime.strptime(x, "%d/%m/%Y"), reverse=True)

# 测试
date_list = ["22/02/2021", "19/03/2021", "18/01/2022"]
print(sorting(date_list))
# 输出:['18/01/2022', '19/03/2021', '22/02/2021']

实现方案2:字符串分割转元组(轻量无依赖)

如果可以确定所有输入日期都是合法的日/月/年格式,不需要额外校验,可以用更简单的无依赖实现:

def sorting(date_list):
    # 按/分割后反转顺序得到(年,月,日)的整数元组,元组天然支持按位比较
    return sorted(date_list, key=lambda x: tuple(map(int, x.split('/')[::-1])), reverse=True)

注意事项

  • 以上两种方案都不会修改原输入列表,会返回新的排序后列表
  • 如果需要直接修改原列表,可以替换为列表自带的sort方法,传入相同的key和reverse参数即可

内容的提问来源于stack exchange,提问作者Mehmet Güdük

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:21:00