我有一句话:
aDict = {
"a" : {
"b" : {
"c1" : {},
"c2" : {},
}
}
}
第二句话:
^{pr2}$
以及“路径”元组:
path = ( "a", "b", "c2" )
现在我想在元组提供的路径上将第二个dict添加到第一个dict:
aResultDict = {
"a" : {
"b" : {
"c1" : {},
"c2" : {
"d1" : {},
"d2" : {},
"d3" : {},
},
}
}
}
Python的方法是什么?在
Tags:
您可以使用
reduce
1获取字典,dict.update
将新内容放入其中:如果你想的话,你甚至可以变得更聪明一点:
^{pr2}$我想应该指出的是,这两种方法略有不同。后者强制
aDict
只包含更多的字典(或dict
子类),而前者允许__getitem__
方法位于aDict
中。As noted in the comments,您还可以使用:但是,如果您尝试在路径中遍历一个不存在的“链接”,而不是
KeyError
,那么这个版本将引发一个AttributeError
,因此我不太喜欢它。此方法还强制路径上的每个值都是dict
或dict
子类。在1
reduce
是python2.x的内置版本。从python2.6开始,它也可以作为functools.reduce
提供。希望与python3.x兼容的代码应该尝试使用functools.reduce
,因为python3.x中的内置项被删除了相关问题 更多 >
编程相关推荐