【问题标题】:Iterate through a dictionary provided keys are from a list [duplicate]遍历字典提供的键来自列表[重复]
【发布时间】:2020-10-09 15:31:51
【问题描述】:

假设我有一个列表和字典,例如

list = ['master', 'sub1', 'sub2']
dict={'master':{'sub1':{'sub2':5}}}

有没有办法遍历嵌套字典来获取,以便我可以更新存储在那里的值?

dict['master']['sub1']['sub2'] = new_value

keys 和 new_value 的列表可以变化,所以解决方案不能是静态的,有没有解决这种问题的方法?

使用functools.reduce(),我们可以获得存储在该层次结构中的特定值,但我不太确定如何更改存储在该层次结构中的值

感谢您的帮助!

【问题讨论】:

    标签: python dictionary dictionary-comprehension


    【解决方案1】:

    你可以使用递归:

    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}}}
    

    【讨论】:

      猜你喜欢
      • 2019-10-01
      • 2015-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-29
      相关资源
      最近更新 更多