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

Python中如何使用for循环合并嵌套字典完成值映射替换

Python 嵌套字典合并实现方案

你的需求核心是将dict1最内层列表中的字符串引用,替换为dict2中对应同名的完整字典结构,不需要拆分dict2内部的子字典内容,直接整体复用即可。你原来梳理的四层循环多了不必要的最后一层遍历,无需单独处理dict2内部的键值对。

易读的循环实现版本

# 初始化目标字典
dict3 = {}
# 遍历dict1第一层键,示例中为 'nested_dict_1'
for level1_key in dict1:
    dict3[level1_key] = {}
    # 遍历当前层级下的x/y/z类键
    for level2_key, ref_list in dict1[level1_key].items():
        # 将引用列表转换为字典:键为列表内的字符串,值为dict2中对应的完整字典
        dict3[level1_key][level2_key] = {
            ref_name: dict2[level1_key][ref_name]
            for ref_name in ref_list
        }

如果后续修改dict3的内容时不想影响原dict2的数据,可以导入copy模块,将dict2[level1_key][ref_name]替换为copy.deepcopy(dict2[level1_key][ref_name])实现深拷贝。

简洁的字典推导式版本

import copy
dict3 = {
    level1_key: {
        level2_key: {ref: copy.deepcopy(dict2[level1_key][ref]) for ref in ref_list}
        for level2_key, ref_list in dict1[level1_key].items()
    }
    for level1_key in dict1
}

你之前的写法之所以失效,是因为混淆了字典键和值的引用逻辑,且额外遍历了dict2的内部子项,不需要拆分dict2的结构,直接把整个嵌套字典作为值赋值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:57:00