下面是输入:
list_child_parent= [
#first value is child, second is parent
(0, 1),
(1, 3),
(8, 7),
(3, 6),
(4, 3),
(5, 3)
]
输出需要使用这些值创建一个嵌套的字典树。树的深度永远不会超过6级。
例如:
output_dict = {
6: {3: {1: {0: {}}, 4: {}, 5: {}}}, 7: {8: {}}
}
我花了两天的时间来完成这个任务。我试着写函数来找到树中的键,然后在它后面添加新的键,但是我不能生成可以连续超过3层的代码。这很令人困惑,我觉得可能有一个标准库可以做到这一点。
我的经验水平很低。
3条答案
按热度按时间sd2nnvve1#
不漂亮,可能也不是Python,但它应该让你去:
bpsygsoo2#
这段代码将把一棵树从给定的格式转换成一个树形结构的字典。这是一个很大的fluf,但它有助于跟踪正在发生的事情。性能方面,它是相当不错的。
ep6jt1vc3#
尽管这个问题很久以前就已经回答过了,但我还是想给予另一个解决方案,对我来说,这个方案似乎更简洁一些。我通常把这个方案用于父母和孩子的列表,这些列表被压缩在一起。例如
实施:
用法:
排除的根示例。
我们希望根是“a”,但是由于根应该被指示为没有父节点(
None
)而被排除。添加没有父节点的根节点会将该节点指定为根节点。
多个树可以通过具有多个根来表示。
为了从原始帖子中获得所需的输出,我们找到并指定根。