想象一下你在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'作为关键.显然,如果从第一个查找返回的值不是字典,它将返回错误.
不,没有什么可以放入变量中,以便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)
归档时间: |
|
查看次数: |
2190 次 |
最近记录: |