2

我想定义一个小包装函数,它采用某种“路径”来访问不同级别的嵌套字典:

D = {'key1': valueA,
     'key2': {'key21': valueB,
             {'key22': valueC}

在这个简单的例子中,我想写一个函数作为参数,例如,一个像

dict_path = ('key2', 'key22')

>>>nested_getter(dict_path)
valueC
4

2 回答 2

4
def nested_getter(d, keys):
    return reduce(dict.get, keys, d)
于 2013-04-29T13:05:19.967 回答
4
D = {'key1': valueA,
     'key2': {'key21': valueB,
              'key22': valueC}}


def nested_getter(root, path):
    for elem in path:
        root = root[elem]
    return root

有了这个,你可以这样做:

>>> nested_getter(D, ('key2', 'key22'))
3
于 2013-04-29T12:53:12.713 回答