假设我在Python中有两个字典:
上下文:我正在使用Python编写一些控制如何解析XML树的数据。每个节点都有一个字典(即如何处理每个节点),我希望我编写的数据是稀疏的,但填充了默认值。示例代码只是一个示例...真正的代码在默认字典中有更多的键/值对。
(我意识到这整个问题只是一个小问题,但它一直困扰着我,所以我想知道是否有更好的方法来做到这一点,我不知道。)
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中是否有我没有发现的功能可以实现这一点? 如果没有,那么编写循环以重复调用dict.setdefaults()
是否有更Pythonic的方法,而不是像下面这样:
for key in defaults.keys():
mydict.setdefault(key, defaults[key])
上下文:我正在使用Python编写一些控制如何解析XML树的数据。每个节点都有一个字典(即如何处理每个节点),我希望我编写的数据是稀疏的,但填充了默认值。示例代码只是一个示例...真正的代码在默认字典中有更多的键/值对。
(我意识到这整个问题只是一个小问题,但它一直困扰着我,所以我想知道是否有更好的方法来做到这一点,我不知道。)