在 python 中定义和遍历树的有效方法是什么?

What is the efficient way to define and traverse tree in python?

我有一些产品需要分配类别。我已经了解了一些嵌套字典技术,但是只想知道使用树结构的有效方法。

样本类别如下图所示,显示的深度也是树的最大深度。

我想获取树中元素的名称搜索一个字符串,使用它作为子字符串并存储在临时列表中(如果存在)。

例如:如果 SUV 存在,我将在字符串中搜索 MUV、SUV、Sedan 词,我将存储更新温度 =[Car、SUV]。之后与 SUV 节点类似地遍历直到树的末尾。所以最后的列表看起来类似于 [Car, SUV,Window,XYZ]

我对这个数据结构完全陌生,因此需要一些关于定义这 4 层树结构和有效访问它的建议。

我要求有效的方法,因为这个过程将在程序中重复至少 30000 次。

看看 ete2 python package, their trees are defined according to the Newick tree format (see wiki:Newick 以获得直觉)

定义树

from ete2 import Tree

t = Tree("(A,(B,(E,D)));" ) # Loads a tree structure from a newick string. The returned variable ’t’ is the root node for the tree.

print t

   /-A
--|
  |   /-B
   \-|
     |   /-E
      \-|
         \-D

遍历树(more information)

for node in t.traverse("postorder"):
  # Do some analysis on node
  print node.name

一个有效的树遍历 Python 脚本

Here

相关问题

Algorithm to decide cut-off for collapsing this tree?