python - 使用Python中的数组递归查找字典中的元素
问题描述
我有一个数组:
["a", "1", "2"]
和一个有点复杂的字典:
{
"a":{
"1": {
"1": "Some text",
"2": "This is the text I want",
"3": "Even more"
},
"2": {
"1": "Some text",
"2": "More text"
}
},
"b": {
"1": "Here is some text",
"2": {
1: "Some text"
},
"3": {}
}
}
我怎样才能使用我的数组来获得"This is the text I want"
?我是递归新手,所以我真的不知道如何正确解决这个问题
解决方案
由于数组的顺序正确,因此在每个递归步骤中,您都希望使用列表的前面来获取下一个最内部的字典。像这样的东西:
def get_dict(arr, d):
if not arr:
return d
return get_dict(arr[1:], d[arr[0]])
更有效的方法是在开始时反转数组,然后从末尾获取元素,因为从末尾获取元素是恒定时间,而从前面获取元素是线性的(必须将所有内容移过来)。如果这样做,请确保在递归开始之前只反转一次。
推荐阅读
- neo4j - 在 Neo4j 中,节点的属性可以是变量吗?
- tailwind-css - Tailwind CSS Group 不适用于自定义类
- javascript - 将打字稿转换为javascript
- python - 如何剥离列并合并?
- php - 自定义帖子类型的 Wordpress 预览链接问题
- angular - 为什么会话 cookie 没有保存在浏览器中?
- c - Linux中C中2个不同应用程序之间的FIFO通信
- snowflake-cloud-data-platform - Snowflake 过程 JavaScript 编译错误:未捕获的 SyntaxError: Unexpected token ':' in ERR_LOGGING at
- node.js - Node.js | fs.readFileSync 找不到刚刚保存在文件夹中的文件
- maven - 如何将 Maven 存储库配置文件重置为特定项目的默认配置?