当值可能在嵌套字典中多次存在时,我正在努力处理嵌套字典,并为特定值返回嵌套的父键。例如:
example_dict = { 'key1' : 'value1',
'key2' : 'value2',
'key3' : { 'key3a': 'value3a' },
'key4' : { 'key4a': { 'key4aa': 'value4aa',
'key4ab': 'value4ab',
'key4ac': 'value1'},
'key4b': 'value4b'}
}
您会注意到 'value1' 在上面的字典中出现了两次,我想创建一个函数来返回单个列表或一系列列表,以标识不同的父键,在本例中为 'key1 ' 和 ('key4', 'key4a', key4ac)。
此类问题已在本网站的其他地方处理过,当时正在寻找的值只出现一次,并且很容易由以下递归函数处理:
def find_key(d,key):
for k,v in d.items():
if isinstance(v,dict):
p = find_key(v,key)
if p:
return [k] + p
elif v == key:
return [k]
print find_key(example_dict,'value4ac').
如果你在字典上运行上面的代码,我只能得到一个父键的答案。任何帮助将不胜感激,谢谢!