gpt4 book ai didi

python-3.x - 递归遍历嵌套字典并返回第一个匹配键的值

转载 作者:行者123 更新时间:2023-12-03 20:16:45 25 4
gpt4 key购买 nike

我有一个深度嵌套的字典,需要遍历它并返回对应于 key 的值参数,我的函数的第二个参数。

例如,与

tree = {"a": 12, "g":{ "b": 2, "c": 4}, "d":5}
tree_traverse(tree, "d")应该返回 5

这是我的代码:
def tree_traverse(tree, key):
for k,v in tree.items():
if isinstance(v, dict):
tree_traverse(v, key)

elif k == key:
return v

我遇到的问题是,如果在遍历最深的嵌套 dict 后没有找到匹配的键,则该函数返回 None 。
我不希望它在找到匹配的键之前返回任何内容。

我没有在另一个线程中找到解决方案,他们中的大多数使用打印语句并且不返回任何内容,所以我想它避免了这个问题。

最佳答案

您必须检查递归调用是否确实找到了一些东西,以便您可以继续循环。例如。尝试以下操作:

def tree_traverse(tree, key):
for k, v in tree.items():
if k == key:
return v
elif isinstance(v, dict):
found = tree_traverse(v, key)
if found is not None: # check if recursive call found it
return found

关于python-3.x - 递归遍历嵌套字典并返回第一个匹配键的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52260624/

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