在 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
for node in t.traverse("postorder"):
# Do some analysis on node
print node.name
一个有效的树遍历 Python 脚本
相关问题
Algorithm to decide cut-off for collapsing this tree?
我有一些产品需要分配类别。我已经了解了一些嵌套字典技术,但是只想知道使用树结构的有效方法。
样本类别如下图所示,显示的深度也是树的最大深度。
我想获取树中元素的名称搜索一个字符串,使用它作为子字符串并存储在临时列表中(如果存在)。
例如:如果 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
for node in t.traverse("postorder"):
# Do some analysis on node
print node.name
一个有效的树遍历 Python 脚本
相关问题
Algorithm to decide cut-off for collapsing this tree?