编辑dict时,python递归添加键到dict

时间:2017-09-11 07:18:23

标签: python python-2.x

需要在字典中更改

d1['a']['b']['c'] = 1

但是有可能

d1['a']['b']不存在,因此必须以递归方式添加

预期结果

d1={} will be {'a':{'b':{'c':'1'}}}
d1={'a':{'b':{'c':'0'}}} will be {'a':{'b':{'c':'1'}}}
d1={'f':1,'a':{'h':'1','b':{'d':'1'}}} will be {'f':1,'a':{'h':1,'b':{'c':'1','d':'1'}}}
d1={'f':1,'a':{'b':{'c':'0','d':'1'}}} will be {'f':1,'a':{'b':{'c':'1','d':'1'}}}
d1={'f':1,'j':{'h':'1','b':{'d':'1'}}} will be {'f':1,'a':{'b':{'c':'1'}},'j':{'h':'1','b':{'d':'1'}}}

丑陋的方式是

if not 'a' in d1.keys():
    d1['a'] = {}
if not 'b' in d1['a'].keys():
    d1['a']['b'] = {}
d1['a']['b']['c'] = 1

但我想要像this这样的非常递归的解决方案,但是要编辑现有的dict。

0 个答案:

没有答案