从嵌套字典获取父母密钥 [英] Get parents keys from nested dictionary

查看:148
本文介绍了从嵌套字典获取父母密钥的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

从以下嵌套字典中,如何获取'value4ac'的每个父字典键?通过启动'value4ac'值,我想获得'key4''key4a ''Key4ac'

From the following nested dictionary, how can I get every parent dictionary key of 'value4ac'? By starting the 'value4ac' value, I want to get 'key4', 'key4a', 'Key4ac'.

example_dict = { 'key1' : 'value1',
                 'key2' : 'value2',
                 'key3' : { 'key3a': 'value3a' },
                 'key4' : { 'key4a': { 
                                         'key4aa': 'value4aa',
                                         'key4ab': 'value4ab',
                                         'key4ac': 'value4ac'
                                     },
                            'key4b': 'value4b'
                           }
                   } 


推荐答案

递归拯救!

example_dict = { 'key1' : 'value1',
                 'key2' : 'value2',
                 'key3' : { 'key3a': 'value3a' },
                 'key4' : { 'key4a': { 'key4aa': 'value4aa',
                                       'key4ab': 'value4ab',
                                       'key4ac': 'value4ac'},
                            'key4b': 'value4b'}
                }

def find_key(d, value):
    for k,v in d.items():
        if isinstance(v, dict):
            p = find_key(v, value)
            if p:
                return [k] + p
        elif v == value:
            return [k]

print find_key(example_dict,'value4ac')

它的工作原理

它查看项目并检查2例


  • 项目不是字典 - 在这种情况下,请查看是否是我们要查找的值。如果是,则返回仅包含密钥的列表。 (这是递归的基础案例)。

  • 项目是字典 - 尝试在该字典中查找密钥。如果在该字典(或任何子命令)中找到它,则将返回正确路径的密钥返回到路径的其余部分。

这篇关于从嵌套字典获取父母密钥的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆