假设我在Python中有两个dicts:
mydict = { 'a': 0 }
defaults = {
'a': 5,
'b': 10,
'c': 15
}
Run Code Online (Sandbox Code Playgroud)
我希望能够mydict使用默认值进行扩展defaults,这样'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])
Run Code Online (Sandbox Code Playgroud)
上下文:我在Python中编写了一些控制如何解析XML树的数据.每个节点都有一个dict(即,如何处理每个节点),我宁愿我写的数据是稀疏的,但是用默认值填充.示例代码只是一个示例...实际代码在默认dict中有更多的键/值对.
(我意识到整个问题只是一个小小的狡辩,但它一直困扰着我,所以我想知道是否有更好的方法来做到这一点,我不知道.)