使用单个变量索引嵌套字典

J-b*_*bob 3 python dictionary

想象一下你在python中有一本字典:myDic = {'a':1, 'b':{'c':2, 'd':3}}.您当然可以将变量设置为键值并在以后使用它,例如:

myKey = 'b'
myDic[myKey]
>>> {'c':2, 'd':3}
Run Code Online (Sandbox Code Playgroud)

但是,有没有办法以某种方式将变量设置为一个值,当用作键时,它也将挖掘到子词典中?有没有办法在python中完成以下伪代码?

myKey = "['b']['c']"
myDic[myKey]
>>> 2
Run Code Online (Sandbox Code Playgroud)

所以首先它使用'b'作为键,然后重新调整它然后使用'c'作为关键.显然,如果从第一个查找返回的值不是字典,它将返回错误.

And*_*ark 5

不,没有什么可以放入变量中,以便myDict[myKey]深入挖掘嵌套的词典.

这是一个可能适合您的功能:

def recursive_get(d, keys):
    if len(keys) == 1:
        return d[keys[0]]
    return recursive_get(d[keys[0]], keys[1:])
Run Code Online (Sandbox Code Playgroud)

例:

>>> myDic = {'a':1, 'b':{'c':2, 'd':3}}
>>> recursive_get(myDic, ['b', 'c'])
2
Run Code Online (Sandbox Code Playgroud)