ツリーには標準のデータ構造があり、リストのリストではありません。
「子」ノードの(または、順序を気にしない場合は)を含むNode
属性を持つクラスを作成します。また、ノードを取得し、そのノードを設定してリストに追加するメソッドを作成します。何かのようなもの:children
list
set
add_child
parent
children
class Node(object):
def __init__(self, children={}):
self.parent = None
self.children = children
def add_child(self, child):
child.parent = self
self.children.add(child)
ツリーを歩くには、ルートの子、次にその子などを要求します。これは再帰的に実行できますが、速度とメモリ効率のために、Pythonで繰り返し実行することをお勧めします。
def walk(root):
yield root
for child in root.children:
for elt in walk(child):
yield elt
もちろん、これは以前にも何度も行われているので、宿題や学習演習でない限り、自分で書くべきではありません。
HTML / XMLドキュメントはツリーのように構造化されているため、実際のデータ構造には、おそらく多くのDOMツリーライブラリの1つを使用する必要があります。xml.dom.minidom
またはを試してくださいlxml
。