代码之家  ›  专栏  ›  技术社区  ›  HardQuestions

Python通过key-in变量获取/设置dict的dict值

  •  -1
  • HardQuestions  · 技术社区  · 6 年前

    我有Python中的dict,它可以很深,而不仅仅是2层。

    data = {
        0: {
            1: {
                2: "Yes"
            },
            3: {
                4: "No"
            }
        },
    }
    

    我需要获取和设置数据,但密钥是动态的,并且存储在列表中

    key_to_get = [0,1,2]
    
    print(data.get(key_to_get))
    

    应该打印 Yes

    1 回复  |  直到 6 年前
        1
  •  0
  •   Mitch    6 年前

    下面是一个简单的递归函数,它解决了这个问题

    def getValue(dict, keys):
        if len(keys) == 1:
            return dict.get(keys[0])
        return getValue(dict.get(keys[0]), keys[1:])
    

    temp = data
    for key in key_to_get:
        temp = temp.get(key)
    print(temp)