在Python中,哪些数据结构可用于表示树中的多个子级?
我想用这种格式表示数据:在Python中,哪些数据结构可用于表示树中的多个子级?,python,data-structures,tree,Python,Data Structures,Tree,我想用这种格式表示数据: Root Block1 Block2 Block3 .... BlockN 现在每个街区将有4个孩子。我希望将来能够改变这一点,这样它至少应该有4个孩子,将来可能还会有更多孩子 Block Child1 Child2 Child3 Child4 每个子级将有一个
Root
Block1 Block2 Block3 .... BlockN
现在每个街区将有4个孩子。我希望将来能够改变这一点,这样它至少应该有4个孩子,将来可能还会有更多孩子
Block
Child1 Child2 Child3 Child4
每个子级将有一个浮点值。
我想知道Python中是否存在用于此目的的现有数据结构。defaultdict可能是您想要的
您的数据结构本质上是一个二维数组,其中第一个维度是块,第二个维度是子维度 在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)
如果每个子对象都只是一个值,那么您真的不需要比这更复杂的了。配对堆是一个很好的方法。很容易用Python实现。@Sukritkalla:堆完全不适合用于此目的。问题不在于对项目进行排名或跟踪集合中的最小项目。我假设他想这样做,因为他说这些值将是浮动值。错误的假设,嵌套列表不是更好的方法吗?这是一个简单的三元树。使用
列表
表示子项,如果需要,可以添加一些属性
通过属性查找访问前4个子项。
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)