如何对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
相关产品推荐
相关产品推荐

