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

如何对Python字典列表按id分组,合并role字段且去重得到目标结果

问题分析

现有代码的问题是未以id作为分组维度聚合,而是直接将所有记录的同名字段值合并到同一个列表中,不符合按id分组的需求。

正确实现代码

id_map = {}
for record in a:
    rid = record["id"]
    if rid not in id_map:
        # 首次匹配到对应id,保留除role外的所有固定字段
        id_map[rid] = {k: v for k, v in record.items() if k != "role"}
        id_map[rid]["role"] = []
    # role字段去重追加
    if record["role"] not in id_map[rid]["role"]:
        id_map[rid]["role"].append(record["role"])
# 转换为列表格式输出
output = list(id_map.values())

运行上述代码后得到的output和要求的预期输出完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 22:00:00