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

时间:2015-02-15 06:18:17

标签: python search dictionary tree nested

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

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

enter image description here

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

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

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

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

1 个答案:

答案 0 :(得分:2)

看看ete2 python package,他们的树是根据Newick树格式定义的(参见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?