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

Python3中如何高效为嵌套字典添加多层键值对?

高效创建嵌套字典并添加键值对的方法

下面几种方法可以帮你避免手动逐层创建嵌套空字典:

  • 用collections.defaultdict递归生成嵌套结构
    定义一个递归的defaultdict,访问不存在的键时会自动生成嵌套的空字典,直接就能赋值:

    from collections import defaultdict
    
    def nested_dict():
        return defaultdict(nested_dict)
    
    my_dict = nested_dict()
    my_dict["foo"]["bar"]["woo"] = "foobar"
    

    要是需要转成普通字典,可以写个简单的递归函数转换,日常使用中defaultdict和普通字典兼容性很好,大部分场景直接用就行。

  • 链式调用dict.setdefault()
    这个方法不用导入模块,直接利用字典自带的setdefault——不存在键就创建空字典,存在则返回已有值,链式调用就能直接设置最内层值:

    my_dict = {}
    my_dict.setdefault("foo", {}).setdefault("bar", {})["woo"] = "foobar"
    
  • 用functools.reduce处理动态键路径
    如果你的键路径是动态的(比如存在列表里),用reduce可以灵活处理任意层数的嵌套:

    from functools import reduce
    
    my_dict = {}
    key_path = ["foo", "bar", "woo"]
    target_value = "foobar"
    
    # 逐层创建嵌套字典,最后给最内层键赋值
    reduce(lambda d, k: d.setdefault(k, {}), key_path[:-1], my_dict)[key_path[-1]] = target_value
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 02:01:11