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

如何按最新消息日期对含嵌套消息列表的线程字典列表排序

按消息线程的最新消息日期排序解决方案

假设你用Python处理该数据,以下是具体实现步骤:

前提说明

已知每个线程的messages列表已按日期从新到旧排好序(最新消息在列表首位),我们直接基于每条线程的第一条消息日期排序即可。

原始数据修正(合法Python格式)

先把你给出的格式调整为可运行的Python字典列表:

threads = [
    {
        "key": "thread1",
        "messages": [
            {"key": "message1", "date": "10/10/2023"},
            # 其他旧消息...
        ]
    },
    {
        "key": "thread2",
        "messages": [
            {"key": "message4", "date": "10/13/2023"},
            # 其他旧消息...
        ]
    }
]

排序代码实现

from datetime import datetime

# 按最新消息日期降序排序,让最新线程排在列表首位
sorted_threads = sorted(
    threads,
    # 提取每条线程的第一条消息日期,转成datetime对象用于准确比较
    key=lambda thread: datetime.strptime(thread["messages"][0]["date"], "%m/%d/%Y"),
    reverse=True  # 开启降序排列
)

特殊情况处理(消息列表未排序时)

如果messages列表没有预先按日期排序,需要先找出每条线程内的最晚消息日期再排序:

sorted_threads = sorted(
    threads,
    key=lambda thread: max(
        datetime.strptime(msg["date"], "%m/%d/%Y") for msg in thread["messages"]
    ),
    reverse=True
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 22:12:52