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

如何对同结构字典进行逐项拼接,生成值为列表的合并字典?

合并结构未知的同构字典列表

假设我们有结构相同但事前未知的字典组成的列表,比如:

dict1 = {"num": {"a": 1, "b": 2}, "fruit": "banana"}
dict2 = {"num": {"a": 3, "b": 4}, "fruit": "apple"}
dict_list = [dict1, dict2]

需要合并成每个对应键的值为列表的字典,嵌套字典也做同样处理:

merged_dict = {"num": {"a": [1, 3], "b": [2, 4]}, "fruit": ["banana", "apple"]}

可以用递归函数处理这种任意层级的嵌套结构:

def merge_dicts(dict_list):
    if not dict_list:
        return {}
    base = dict_list[0]
    merged = {}
    for key in base:
        values = [d[key] for d in dict_list]
        if isinstance(base[key], dict):
            merged[key] = merge_dicts(values)
        else:
            merged[key] = values
    return merged

# 测试
dict1 = {"num": {"a": 1, "b": 2}, "fruit": "banana"}
dict2 = {"num": {"a": 3, "b": 4}, "fruit": "apple"}
dict_list = [dict1, dict2]
print(merge_dicts(dict_list))

代码逻辑说明:

  • 先判断输入列表是否为空,为空则返回空字典
  • 以第一个字典的结构为基准,遍历每个键
  • 收集所有字典中该键对应的所有值
  • 如果该键对应的值是字典,递归调用合并函数处理子字典列表
  • 非字典类型的值直接组成列表存入结果字典

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 02:58:11