任意深度字典查找一行?蟒蛇

时间:2013-12-19 11:50:28

标签: python dictionary

所以我想说我有一个表格字典:

d = {'a':{'b':{'c':1,'d':2},'e':1}}

我希望从列表中获取一个元素,其中包含在列表中定义的键,例如:

l = ['a','e'] 

l = ['a','b','c']

我可以这样做:

def getVal(d,keys):
    if keys==[]:
        return d
    else:
        nextD = d[keys.pop(0)]
        return getVal(nextD,keys)

但我想知道是否有更灵巧的python方式来实现它

(类似于val = d [* l] ???)

1 个答案:

答案 0 :(得分:0)

根据Martijn评论中的链接,这个问题的答案是:

def getVal(d,keys):
    return reduce(dict.__getitem__, keys, d)