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

如何用config.setdefault()处理多级字典并设置嵌套键默认值?

使用setdefault()处理多级字典的默认值

当然可行,你可以通过嵌套调用setdefault()来实现多级字典的默认值设置。核心思路是先确保外层键(比如"key2")对应的字典存在,再对这个子字典的键设置默认值。

具体实现代码

config = {}

# 设置外层键的默认值
config.setdefault("key1", 10)
# 确保key2对应字典存在,不存在则创建空字典
config.setdefault("key2", {})
# 给key2子字典的x、y设置默认值
config["key2"].setdefault("x", 1)
config["key2"].setdefault("y", 2)
config.setdefault("key3", 5)

说明

  • config.setdefault("key2", {})的作用是保证"key2"对应的是字典类型:如果之前没设置过该键,就创建一个空字典;如果已存在,保留原有值。这一步能避免直接访问config["key2"]时抛出KeyError。
  • 对config["key2"]调用setdefault()时,若子键(x、y)已存在,不会覆盖原有值;若不存在,则设置你指定的默认值。

如果想要更简洁的写法,也可以把两步合并成一行:

config.setdefault("key2", {}).setdefault("x", 1)
config.setdefault("key2", {}).setdefault("y", 2)

这种写法无需单独初始化key2的字典,每次调用都会先确保key2存在,再设置子键的默认值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 04:50:24