在字典树的所有叶到根的路径我有一个字典树中的“非标准”的形式,如下所示:生成在Python
tree = {'0': {'A': {'B': {'C': {}}}},
{'D': {'E': {}},
{'F': {}}}}
叶节点被定义为字典键值对的值是一个空的字典。 我想提取所有叶到根路径,列表的列表,像这样:
paths_ = [['C', 'B', 'A', '0'],
['E', 'D', '0'],
['F', 'D', '0']]
的路径可以颠倒过,如果这是有帮助的。
paths_ = [['0', 'A', 'B', 'C'],
['0', 'D', 'E'],
['0', 'D', 'F']]
我知道我必须做递归,我需要每个路径的累加器列表。如果函数产生了路径列表,它也会很好。我到目前为止是这样的:
def paths(node, subtree, acc=[]):
if not subtree:
yield [node]+acc
for n, s in subtree.items():
yield paths(n, s, acc)
它并没有真正做我想做什么:
paths_ = list(paths('0', tree['0']))
理想这应该返回列表的名单。任何帮助都感激不尽。
可否请你解决'tree'?这是不正确的。 – 2012-07-19 22:59:39