作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个深度嵌套的字典,需要遍历它并返回对应于 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
最佳答案
您必须检查递归调用是否确实找到了一些东西,以便您可以继续循环。例如。尝试以下操作:
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/
我是一名优秀的程序员,十分优秀!