Python:使用列表映射到多维字典

时间:2019-02-17 09:37:58

标签: python list multidimensional-array

我需要一个函数来更改嵌套字典中的值, 通过爬取列表而不是通常的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}}

1 个答案:

答案 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)

使用不必要的东西(例如execglobals())不是很好。