python - 从嵌套字典中获取父键

标签 python dictionary nested

如何从下面的嵌套字典中获取'value4ac' 的每个父字典键?通过启动 'value4ac' 值,我想得到 '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 个案例

  • item 不是字典——在这种情况下,看看它是否是我们正在寻找的值。如果是,则返回一个仅包含键的列表。 (这是我们递归的基本情况)。
  • item 是一本字典 -- 尝试在该字典中查找关键字。如果在该字典(或任何子字典)中找到它,则返回将正确路径添加到路径其余部分的键。

关于python - 从嵌套字典中获取父键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15210148/

相关文章:

python - 应该如何安装和启用 Jupyter 扩展以使其可重现?

arrays - Swift 引用与数组和字典的值

java - 从嵌套列表 Spring JpaRepository 中检索对象

mySQL - 将 id 传递给嵌套查询

Python 计算 dict 值中的项目,它是一个列表

python - Matplotlib:制作具有透明最外层的二维高斯轮廓

python - 我怎样才能从 python 得到一个 char*[]

php - 我正在制作一个带有 map 的 PHP 游戏,我有一些问题

json - 如何将 Julia 字典键从字符串转换为整数

java - java.util.Properties 是否支持嵌套属性?