假设我有两个 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/