如何计算嵌套字典键的出现次数?

时间:2019-02-14 21:10:30

标签: python dictionary

我有一个嵌套的字典:

d = {'key': 1, 'lock':{'key': 3, 'lock': {'key': 7, 'lock': None}}}

,我希望简单地获取“密钥”发生的次数。因此,在此示例中,输出为:

3

因为“键”出现了3次。我知道这很简单,但是我对如何使用字典有点迷惑。 我希望尽可能不使用任何库。

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

您可以使用递归计算给定键的函数:

def count(d, k):
    c = int(k in d)
    for v in d.values():
        if isinstance(v, dict):
            c += count(v, k)
    return c

或以更简洁的方式编写以上内容:

def count(d, k):
    return (k in d) + sum(count(v, k) for v in d.values() if isinstance(v, dict))

使count(d, 'key')返回:3