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

Swift4中合并嵌套字典:请求合并三个指定字典的实现方案

合并嵌套字典的实现方法

这是个很常见的嵌套字典合并需求,我给你两种实用的实现方式,既能满足你当前的两层嵌套场景,也能适配更深层级的字典合并。

首先先明确你的三个输入字典:

dict1 = {"Abc": {"Def": {"Jkl": "xxx"}}}
dict2 = {"Abc": {"Ghi": {"Mno": "yyy"}}}
dict3 = {"Abc": {"Ghi": {"Pqr": "zzz"}}}

方法一:通用递归合并函数

这种方法是我平时处理这类需求最常用的,不管嵌套字典有多少层,都能自动合并同层级的键值对,灵活性拉满。核心思路是遍历每个字典的键,如果键已经存在且对应的值都是字典,就递归合并这两个子字典;否则直接赋值。

def merge_nested_dicts(*dicts):
    merged = {}
    for current_dict in dicts:
        for key, value in current_dict.items():
            if key in merged:
                # 若当前值和已存在的值都是字典,递归合并子字典
                if isinstance(merged[key], dict) and isinstance(value, dict):
                    merged[key] = merge_nested_dicts(merged[key], value)
                else:
                    # 若类型不同,这里可以根据需求调整逻辑,比如覆盖原有值或者抛出提示
                    # 你的场景里都是嵌套字典,所以这个分支大概率不会触发
                    merged[key] = value
            else:
                merged[key] = value
    return merged

# 调用函数合并三个字典
merged_result = merge_nested_dicts(dict1, dict2, dict3)
print(merged_result)

运行后会得到你期望的结果:

{'Abc': {'Def': {'Jkl': 'xxx'}, 'Ghi': {'Mno': 'yyy', 'Pqr': 'zzz'}}}

方法二:针对固定层级的手动合并(适合简单场景)

如果你的字典嵌套层级固定(比如只有两层),也可以直接手动处理,代码会更简洁,但扩展性差——如果后续字典层级变化,就得修改代码:

merged = {}
# 先合并Abc下的所有子字典
abc_merged = {}
# 整合dict1的Def
abc_merged.update(dict1["Abc"])
# 整合dict2和dict3的Ghi,先取出dict2的Ghi,再用dict3的Ghi更新它
ghi_merged = dict2["Abc"]["Ghi"].copy()
ghi_merged.update(dict3["Abc"]["Ghi"])
abc_merged["Ghi"] = ghi_merged
merged["Abc"] = abc_merged

print(merged)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 20:28:12