在Python中获取嵌套字典的最终元素

时间:2015-01-03 14:21:35

标签: python python-3.x dictionary

如何通过一个或几个键获取嵌套字典的最新元素?

例如我的嵌套字典是:

{
'key_1' : 
        {
         'key_1_1' : 
                    {
                     'key_1_1_1' : 
                                  value1, value2
                    }
                    ,
                    {
                     'key_1_1_2' : 
                                  value3
                    }
         }

} 

>>>dict[key_1]
value1, value2, value3
>>>dict[key_1][key_1_1][key_1_1_2]
value3

1 个答案:

答案 0 :(得分:1)

一个简单的递归函数应该做你正在寻找的东西:

def vals(x):
    if isinstance(x, dict):
        result = []
        for v in x.values():
            result.extend(vals(v))
        return result
    else:
        return [x]

用作..

>>> d = {1:2, 3:{4:5, 6:7}}
>>> vals(d)
[2, 5, 7]
>>> vals(d[1])
[2]
>>> vals(d[3])                                                                  
[5, 7]