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