gpt4 book ai didi

python - 提取上一级嵌套字典中关联的键

转载 作者:太空宇宙 更新时间:2023-11-03 10:49:38 24 4
gpt4 key购买 nike

我有一个深度未知的大型嵌套字典,我想知道如何找到导致该值的键。例如……

{'furniture':{'chair':{'sofa':{'cushion':{}}}}}

理想情况下,我正在寻找的是一个函数,用于确定我输入的值的路径。我尝试过在线研究,这就是我尝试过的...

def route(d,key):
if key in d: return d[key]

for k,v in d.items():
if isinstance(v,dict):
item = route(v, key)
if item is not None:
return item

这将返回键内的项目。我希望能够提取通向该项目的路径。例如,route(dictionary,'sofa') 然后我将能够得到预期的输出或类似的东西......

{'sofa':{'chair':'furniture'}}

我可以通过哪些方式实现这一目标?感谢您的帮助

最佳答案

您可以递归地执行此操作并返回引导您找到目标键的键列表:

def route(d, key):
if key in d: return [key]
for k, v in d.items():
if type(v) == dict:
found = route(v, key)
if found: return [k] + found
return []

如果我们在以下字典上运行:

data = {
'furniture': {
'chair': {
'sofa': {
'cushion': {}
}
}
},
'electronics': {
'tv': {
'samsung43': 800,
'tcl54': 200
}
}
}

print(route(data, 'cushion'))
print(route(data, 'tcl54'))
print(route(data, 'hello'))

我们得到以下输出:

['furniture', 'chair', 'sofa', 'cushion']
['electronics', 'tv', 'tcl54']
[]

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com