我需要一个函数来更改嵌套字典中的值,
通过爬取列表而不是通常的dic[key1][key2] = value
例如:
IN[0]: dic = {'1': 23, '3': {'a': 'foo', 'b': 67}}
IN[1]: l = ['3', 'a']
IN[2]: func(dic, l , newvalue)
IN[3]: print dic
预期输出:
OUT[4]: dic = {'1': 23, '3': {'a': newvalue, 'b': 67}}
答案 0 :(得分:0)
尝试一下:
def func(dic, keys, value):
for key in keys[:-1]:
dic = dic.setdefault(key, {})
dic[keys[-1]] = value
func(dic, l , newvalue)
print(dic)
使用不必要的东西(例如exec
和globals()
)不是很好。