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

Python中如何按end_date和start_date降序对字典列表进行排序

Python 字典列表按日期字段排序方案

直接使用Python内置的sorted函数即可实现符合要求的简洁排序逻辑:

import datetime

# 保留你原有的blah列表定义
result = sorted(
    blah,
    key=lambda d: (
        d["end_date"] if d["end_date"] is not None else datetime.date.max,
        d["start_date"]
    ),
    reverse=True
)

逻辑说明

  • 特殊值处理:把end_date为None的条目替换为Python内置的最大日期值datetime.date.max,保证空结束日期的条目始终排在最前列,符合降序排序规则
  • 排序优先级:通过元组(处理后的end_date, start_date)作为排序键,配合reverse=True自动实现「优先按end_date降序,end_date相同时按start_date降序」的要求
  • 稳定排序特性:Python内置sorted是稳定排序,两个条目start_date和end_date完全一致时会保留原有相对顺序,符合第三条规则要求

内容的提问来源于stack exchange,提问作者The Go Company

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 23:18:00