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

Python多条件筛选字典列表最新记录:last_modified相同时按date排序

实现多字段优先级排序获取最新记录

场景代码

data = [
    {"name": "name1", "date": "1997-07-16 19:20:00+01:00" , 'last_modified':"1997-07-16 19:20:00+01:00"},
    {"name": "name3", "date": "2006-07-16 19:20:00+01:00" ,  'last_modified':"1997-07-16 19:20:00+01:00"},
    {"name": "name2", "date": "1992-07-16 19:20:00+01:00",  'last_modified':"1997-07-16 19:20:00+01:00"}]

原代码仅按last_modified字段降序排序:

sorted_files = sorted(data, key=lambda d: d.get('last_modified', {}), reverse=True)

问题需求

当多个记录的last_modified字段值相同时,需要进一步对比date字段,按date降序筛选出最新记录,如何用一行代码实现?

解决方案

利用Python排序时对元组的按元素顺序依次比较特性,将排序key设置为包含last_modified和date的元组即可:

sorted_files = sorted(data, key=lambda d: (d.get('last_modified'), d.get('date')), reverse=True)

原理说明

  • 排序时会先比较元组的第一个元素last_modified,值大的排在前面(因为reverse=True);
  • 当last_modified相同时,自动比较第二个元素date,同样按降序排列,从而实现"先按last_modified,再按date"的优先级排序逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 03:48:09