Python:从分支推断项目层次结构

Python:从分支推断项目层次结构,python,hierarchy,hierarchical-data,Python,Hierarchy,Hierarchical Data,说明 我们为我们的研究下载了一个包含分层数据的数据集。然而,制造商根本就不一致。例如,有时我们会遇到如下情况: term1:term2:term3:term4 在其他情况下,我们只有: term4 示例数据 例如,让我们看看这个数据集: data = [['root','test','coffee'], ['root', 'test', 'gains'], ['root','gains', 'coffee'], ['root','milk',

说明
我们为我们的研究下载了一个包含分层数据的数据集。然而,制造商根本就不一致。例如,有时我们会遇到如下情况:

term1:term2:term3:term4
在其他情况下,我们只有:

term4

示例数据
例如,让我们看看这个数据集:

data = [['root','test','coffee'],
        ['root', 'test', 'gains'],
        ['root','gains', 'coffee'],
        ['root','milk','bread']]
现在,我想写一段代码,根据这些数据破译完整的层次结构(或至少尽可能好),只需打印到端点的分支:

root:test:gains:coffee
root:milk:bread

我很确定有一个非常简单的技巧可以做到这一点,但我还没有找到,我尝试的是:

  • 从最长的分支开始(在本例中无所谓),然后在遇到无法适应起始分支的术语时添加新分支
事实上,没有明确规定规则是什么。例如,如果它同时遇到
a:b:c
a:c:b
,该怎么办?我的数据集太大了,事先无法知道这一点,但让我们假设(并希望)这是不可能的@zvone我想我会尝试使用Python用于MRO的相同机制来解决它。看起来是同一类型的问题。