python - 在树中查找元素的完整路径
问题描述
我想在树中找到元素的完整路径。元素可以位于少数几个地方。
我当前的代码:
levels = [
{"L3A": ["L4A"]},
{"L3B": ["L4B"]},
{"L3C": ["L4C"]},
{"L1": ["L2", "L4A"]},
{"L2": ["L3A", "L3B", "L3C"]}
]
def get_level(name):
tree = []
recursive(name, tree)
return tree
def recursive(name, tree):
for level in levels:
for k, v in level.items():
if name in v:
tree.append(k)
recursive(k, tree)
levl = get_level("L4A")
print(levl)
结果
是: ['L3A', 'L2', 'L1', 'L1']
想: [['L3A', 'L2', 'L1'], ['L1']]
最终想要:
L4A in L1 > L2 > L3A
L4A in L1
你能给我一些建议如何改变它吗?
解决方案
反转关联图,然后应用标准图搜索,例如。DFS。
推荐阅读
- azure-cosmosdb - 在 Cosmos DB 中的数字序列中查找最小缺失值
- vue.js - Post 方法不会将结果添加到表中
- c - PCAP 编码 :: 我的代码设置了错误的以太网类型
- postgresql - PostgresSQL 错误 - 真实数据类型的问题
- javascript - 将数组转换为嵌套 JSON
- java - 无法从文件路径列出父目录
- postgresql - TOAST 在 MVCC Postgres 中的行为方式
- wordpress - 在 WooCommerce 中隐藏特定时间的运输方式
- python - Python:将许多 2D 列表附加到一个 2D 列表
- python - MySQL SQLALCHEMY Python 获取时间戳的最大计数