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

如何按元组中的日期对象对Python字典进行排序

按日期排序Python字典的解决方案

没问题,要给这个字典按每个条目里的日期排序,咱们可以通过提取日期并转换为可比较的datetime对象来实现,下面是具体步骤和代码:

思路说明

每个字典值里都包含一个格式为'YYYY-MM-DD HH:MM:SS'的日期字符串,咱们需要先把这个字符串提取出来,转换成Python的datetime对象(这样才能正确按时间先后排序),然后以此为依据对字典的键值对进行排序。

完整代码实现

import datetime
import re

# 你的原始字典
final_dict = {
    '102 Not Out': "('75', '2018-05-04 00:00:00'),N/A",
    '2.0': "('84', '2019-01-01 00:00:00'),8.5",
    '3 Dev': "('0', '2018-05-11 00:00:00'),No IMDB Info Available",
    'Adityam': "('34', '2018-04-27 00:00:00'),No IMDB Info Available",
    'Ajay Devgn – Luv Ranjan’s Next': "('63', '2018-10-19 00:00:00'),No IMDB Info Available",
    'Arjun Patiala': "('0', '2018-09-13 00:00:00'),No IMDB Info Available",
    'Baazaar': "('60', '2018-10-26 00:00:00'),6.2"
}

def extract_datetime(item):
    # 从字典的键值对中取出值部分
    entry_info = item[1]
    # 用正则精准匹配日期字符串,避免其他字符干扰
    date_match = re.search(r"'(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})'", entry_info)
    if date_match:
        date_str = date_match.group(1)
        # 将字符串转换为datetime对象
        return datetime.datetime.strptime(date_str, '%Y-%m-%d %H:%M:%S')
    # 处理没有找到日期的异常情况,这里默认排到最前面
    return datetime.datetime.min

# 对字典的键值对按日期排序
sorted_entries = sorted(final_dict.items(), key=extract_datetime)

# 转换为有序字典(Python3.7+ 普通字典自动保留顺序,旧版本用 collections.OrderedDict)
sorted_final_dict = dict(sorted_entries)

# 验证排序结果
for movie, details in sorted_final_dict.items():
    print(f"{movie}: {details}")

代码解释

  1. 模块导入:datetime用于日期转换和比较,re用于更可靠地提取日期字符串(比单纯的字符串分割容错性更强)。
  2. 日期提取函数:extract_datetime接收字典的键值对,用正则匹配出日期字符串,再转换为datetime对象;如果某个条目没有日期,返回datetime.min(会被排到最前面,你可以根据需求修改这个逻辑)。
  3. 排序与转换:用sorted()函数对字典的items()进行排序,指定排序依据为提取到的datetime对象;最后将排序后的键值对转换为字典,Python3.7及以上版本的普通字典会自动保留排序后的顺序。

预期排序结果

运行代码后,字典会按日期从早到晚排列:

  • Adityam (2018-04-27)
  • 102 Not Out (2018-05-04)
  • 3 Dev (2018-05-11)
  • Arjun Patiala (2018-09-13)
  • Ajay Devgn – Luv Ranjan’s Next (2018-10-19)
  • Baazaar (2018-10-26)
  • 2.0 (2019-01-01)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:57:41