我有
dict = {
a: {
a1: 1
},
b : { b1: 2, b2: { b11: 33 } },
c : 12
}
keys_array = ['b', 'b2', 'b11]
val = 100
函数应仅更新dict中的一个值并返回, 不仅仅是得到它,我需要更新价值
{a: {a1: 1}, b :{b1: 2, b2: {b11:
100 }}, c : 12}
但是我的功能不是我想要的那么聪明
def update(dict, keys_array, val):
if len(keys_array) == 1:
dict[keys_array[0]] = val
if len(keys_array) == 2:
dict[keys_array[0]][keys_array[1]] = val
if len(keys_array) == 3:
dict[keys_array[0]][keys_array[1]][keys_array[2]] = val
...
def update(d, val, *keys):
if len(keys) >= 1:
if keys[0] not in d:
d[keys[0]] = {}
if len(keys) >= 2:
d[keys[0]] = update(d[keys[0]], val, *keys[1:])
elif len(keys) == 1:
d[keys[0]] = val
return d```