2013-07-08 13 views
0

我要以這種格式來表示數據:什麼數據結構可以用來表示Python中樹中的多個子項?

     Root 

Block1   Block2    Block3 ....    BlockN 

每個塊將有4個孩子現在。我希望能夠在將來改變這種情況,所以它至少應該有4個孩子,並且未來可能會有更多的孩子。

     Block 

Child1 Child2     Child3 Child4 

每個孩子都會有一個浮動值。 我想知道在Python中是否存在任何現有的數據結構。

+0

配對堆是一個好方法。易於在Python中實現。 –

+0

@SukritKalra:堆將完全不適合這個目的。問題不在於排列項目或跟蹤集合中的最小項目。 – user2357112

+0

我以爲他想這樣做,因爲他說這些值是浮動值。錯誤的假設,不會嵌套列表是一個更好的方式去呢? –

回答

0

defaultdict也許你想要什麼

here is the docs

from collections import defaultdict 
x = defaultdict(list) 
x[some_block].append(some_child) # add child 
0

你的數據結構本質上是一個二維數組,其中第一維是塊和第二個維度是孩子。

在Python我可能會使用列表的列表:

child1, child2, child3, child4 = 1, 2, 3, 4 
block1 = [child1, child2, child3, child4] 
# other children, blocks, etc. 
root = [block1, block2, block3, block4] 
print(root[0][0] == 1) 

如果每個孩子只是一個值,你真的不需要任何比這更復雜。

相關問題