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

如何将两个Python字典合并为二维字典:以dict2的键作为dict1的列表值

如何根据字典列表值合并两个字典生成二维字典?

我有两个字典:

dict1 = {'key1':['val1','val2','val3']}
dict2 = {'val1':['a','b','c']}

我想要生成第三个二维字典:

dict3 = {'key1': {'val1':['a','b','c']} }

简单来说就是合并这两个字典,用第一个字典里列表中的值作为第二个字典的键,构建对应的嵌套结构。我试过用嵌套循环:

for key1, val1 in dict1.items():
    for key2, val2 in dict2.items():
        # 这里不知道该怎么写操作

但目前还没成功实现想要的效果,请问该怎么解决?


嘿,这个问题其实很好解决,我们只要调整一下循环的逻辑,不用盲目遍历整个dict2,而是精准检查dict1列表里的值是否存在于dict2的键中就行。

给你一个直接可用的实现代码:

dict1 = {'key1':['val1','val2','val3']}
dict2 = {'val1':['a','b','c']}

dict3 = {}
for main_key, sub_values in dict1.items():
    # 先给主键在dict3里初始化一个空字典,用来存嵌套内容
    dict3[main_key] = {}
    for sub_val in sub_values:
        # 检查当前子值是否是dict2的键
        if sub_val in dict2:
            # 如果匹配上,就把dict2对应的键值对塞进去
            dict3[main_key][sub_val] = dict2[sub_val]

print(dict3)
# 输出结果: {'key1': {'val1': ['a', 'b', 'c']}}

思路拆解:

  • 先遍历dict1的每一组键值对,拿到主键(比如key1)和对应的列表值
  • 为主键在dict3里创建一个空字典,作为嵌套结构的容器
  • 接着遍历dict1列表里的每个元素,逐一检查这个元素是不是dict2的键
  • 只要匹配成功,就把dict2里对应的键值对添加到dict3的嵌套字典中

这个逻辑还很灵活,如果后续dict1的列表里有多个值能在dict2里找到对应键,比如dict2新增'val2': ['d','e'],结果会自动变成{'key1': {'val1': ['a','b','c'], 'val2': ['d','e']}},完全适配扩展场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:12:59