python - 有没有办法使用另一个字典在 Python 字典上设置多个默认值?

标签 python dictionary

假设我有两个 Python 指令:

mydict = { 'a': 0 }

defaults = {
    'a': 5,
    'b': 10,
    'c': 15
}

我希望能够使用 defaults 中的默认值扩展 mydict,这样 'a' 保持不变但 'b' 和 'c' 被填充我知道 dict.setdefault()dict.update() ,但每个只做我想要的一半 - 使用 dict.setdefault(),我必须遍历 defaults 中的每个变量;但是对于 dict.update()defaults 将清除 mydict 中任何预先存在的值。

是否有一些我没有发现的内置于 Python 中的功能可以做到这一点?如果没有,是否有比这更 Pythonic 的方式来编写循环以重复调用 dict.setdefaults():

for key in defaults.keys():
    mydict.setdefault(key, defaults[key])

上下文:我正在用 Python 编写一些数据来控制如何解析 XML 树。每个节点都有一个字典(即如何处理每个节点),我宁愿我写的数据是稀疏的,但用默认值填充。示例代码只是一个示例……实际代码在默认字典中有更多的键/值对。

(我意识到这整个问题只是一个小问题,但它一直困扰着我,所以我想知道是否有更好的方法来做到这一点,但我不知道。)

最佳答案

你不能让 mydict 成为 default 的副本,那样的话,mydict 就会有所有正确的值开始吗?

mydict = default.copy()

关于python - 有没有办法使用另一个字典在 Python 字典上设置多个默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/849806/

相关文章:

python - "Crash-proofing"脚本与使用 systemd 保证近乎恒定的操作

python - 激活venv时权限被拒绝

python - Python DB-API 2.0 仅适用于关系数据库吗?

python - 带有 PyDev Eclipse 的 GUI IDE

python - 如何在 Python 中解压复杂的嵌套列(字典的字典列表)? [推特广告 API]

python - 存储 8M+ sha256 哈希的最有效内存方式

c# - 使用结构作为字典的键和奇怪的事情正在发生

python - 图形工具中的顶点坐标

c++ - map 和多 map : memory usage/management differences?

python - 将 MultiDict 转换为正确的 JSON