在字典中获取子键值的优雅方法是什么,但只有在使用python存在两个键级别时?
例如,我想从'爸爸'那里获得'团队'的价值.因此,如果爸爸不存在,它应该返回none,否则继续寻找子团队'team',如果不存在则返回none,否则返回值.
是否有一种简单的方法可以编写一个递归函数,我只是传递一个名称数组然后查看,如果它遇到一个丢失的键,它只返回一个定义的默认值.
我知道我现在可以做
dict.get('dad', None)
Run Code Online (Sandbox Code Playgroud)
我希望能够做到这样的事情
dict.get(['dad','team'], None)
Run Code Online (Sandbox Code Playgroud)
字典
{
"dad":{
"team":"packers"
},
"mom":{
"show":"rugrats",
"vehicle":"buggy"
}
}
Run Code Online (Sandbox Code Playgroud)
dict.get('dad', {}).get('team', None)
Run Code Online (Sandbox Code Playgroud)
这恰好有两个层次.在一般情况下,你可以
def recurGet(d, ks):
head, *tail = ks
return recurGet(d.get(head, {}), tail) if tail else d.get(head)
Run Code Online (Sandbox Code Playgroud)
这head, *tail = ks是Python 3.在Python 2中,您必须将其明确地写为
head = ks[0]
tail = ks[1:]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1016 次 |
| 最近记录: |