python - 获取所有子词典的key

标签 python dictionary

我有一个这种类型的字典,其中的值是字典,而且字典中可以有嵌套的字典。像这样:

data = {'key1': {
              'keya':{ 
                      'keyc': None
                      }    
              'keyb': None
                       
                }
        'key2': {
               'keyi':None, 
               'keyii': None
                }
       }

字典可以有很多(我们不知道values里面可以有多少字典)。我怎样才能像这样获得所有值中的所有键?

['key1', 'key2', 'keya', 'keyb', 'keyi', 'keyii']

最佳答案

你可以使用递归得到所有的键

def get_all_keys_rec(dic):
    keys = [key for key in dic]
    for val in dic.values():
        if type(val)==dict:
            inner_keys = get_all_keys_rec(val)
            keys.extend(inner_keys)
    return keys

print(get_all_keys_rec(data))

输出:

['key1', 'key2', 'keya', 'keyb', 'keyc', 'keyi', 'keyii']

关于python - 获取所有子词典的key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72508071/

相关文章:

python - 两个方括号并排 : strange effect

C# - 如何用一个键和两个值编写一个集合(字典?)

Swift 按值对字典进行排序

python - 通过 python 中的键过滤列表中字典项的值

python - 删除字符串中的第一个字符会留下空格

python - 随机打乱每行 numpy 数组中的项目

python - fft 的输出表示为正弦/余弦形式的傅里叶级数

Python3 从 URL 下载编码错误的图像

python - 如何在python中将一个键对值从一个字典复制到另一个字典

dictionary - 如何从 Rust 中的迭代器解压 BTreeMap 项元组?