我有一个嵌套的字典:
d = {'key': 1, 'lock':{'key': 3, 'lock': {'key': 7, 'lock': None}}}
,我希望简单地获取“密钥”发生的次数。因此,在此示例中,输出为:
3
因为“键”出现了3次。我知道这很简单,但是我对如何使用字典有点迷惑。 我希望尽可能不使用任何库。
感谢您的帮助!
答案 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