簡體   English   中英

在python中定義和遍歷樹的有效方法是什么?

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

我有一些產品需要分配類別。 我已經介紹了一些嵌套字典技術,但只是想知道使用樹結構的有效方法。

樣本類別如下圖所示,顯示的深度也是樹的最大深度。

在此輸入圖像描述

我想在樹中搜索元素的名稱,將其作為字符串使用它作為子字符串,並存儲在臨時列表中(如果存在)。

例如:如果SUV存在,我將在字符串中搜索MUV,SUV,Sedan單詞我將存儲更新t​​emp = [Car,SUV]。 之后,與SUV節點類似地遍歷,直到樹的結尾。 所以最后的列表看起來類似於[Car,SUV,Window,XYZ]

我對這個數據結構完全陌生,因此需要一些關於定義這個4級樹結構並有效訪問它的建議。

我要求有效的方法,因為這個過程將在程序中重復至少30000次。

看看ete2 python包 ,它們的樹是根據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

穿越樹 (更多信息)

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

一個工作樹遍歷Python腳本

這里

相關問題

決定折斷這棵樹的截止點的算法?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM