迭代字典提供的键来自列表
Iterate through a dictionary provided keys are from a list
假设我有一个像
这样的列表和字典
list = ['master', 'sub1', 'sub2']
dict={'master':{'sub1':{'sub2':5}}}
有没有办法遍历嵌套字典来获取,以便我可以更新存储在那里的值?
dict['master']['sub1']['sub2'] = new_value
密钥列表和 new_value 可能会有所不同,因此解决方案不能一成不变,是否有解决此类问题的方法?
使用 functools.reduce()
我们可以获得存储在该层次结构中的特定值,但我不太确定如何更改存储在该层次结构中的值
感谢您的帮助!
你可以使用递归:
l = ['master', 'sub1', 'sub2']
d = {'master':{'sub1':{'sub2':5}}}
def to_dict(l, val=5):
return {l[0]:val if not l[1:] else to_dict(l[1:])}
print(to_dict(l))
输出:
{'master': {'sub1': {'sub2': 5}}}
假设我有一个像
这样的列表和字典list = ['master', 'sub1', 'sub2']
dict={'master':{'sub1':{'sub2':5}}}
有没有办法遍历嵌套字典来获取,以便我可以更新存储在那里的值?
dict['master']['sub1']['sub2'] = new_value
密钥列表和 new_value 可能会有所不同,因此解决方案不能一成不变,是否有解决此类问题的方法?
使用 functools.reduce()
我们可以获得存储在该层次结构中的特定值,但我不太确定如何更改存储在该层次结构中的值
感谢您的帮助!
你可以使用递归:
l = ['master', 'sub1', 'sub2']
d = {'master':{'sub1':{'sub2':5}}}
def to_dict(l, val=5):
return {l[0]:val if not l[1:] else to_dict(l[1:])}
print(to_dict(l))
输出:
{'master': {'sub1': {'sub2': 5}}}