如果我有一个嵌套字典d = {'a':{'b':{}}}
和一个字符串'a.b.c'
和一个值'X'
我需要根据键字符串将值放入字典中。
我想要实现的目标可以硬编码为d['a']['b']['c'] = 'X'
但我需要动态地做到这一点。密钥字符串可以是任意长度。
对于奖励积分:如果密钥不存在,我还需要创建密钥'a.b.z'
但我确信如果我能解决它们已经存在的情况,我就能弄清楚。
def set(d, key, value):
dd = d
keys = key.split('.')
latest = keys.pop()
for k in keys:
dd = dd.setdefault(k, {})
dd.setdefault(latest, value)
d = {}
set(d, 'a.b.c', 'X')
set(d, 'a.b.d', 'Y')
print(d)
Result:
{'a': {'b': {'c': 'X', 'd': 'Y'}}}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)