我注意到Python
在处理数据结构方面有很多专长(各种迭代器,生成器,列表推导等)。
您能否告诉我一些对pythonic style
中的树有用的数据结构?树中的节点将包含一些数据,并且会有诸如children
,siblings
之类的经典操作。您可以使用一些智能示例来呈现一些处理树的python特殊功能(例如,编程的功能方法) )
答案 0 :(得分:1)
您可以使用ElementTree API,该API在Python standard library和LXML库中实施。它适用于XML处理,但您也可以使用它来处理树状结构数据(并免费获取XML序列化)。
答案 1 :(得分:1)
查看NetworkX的文档,这是一个用于处理基于图形的数据结构(包括树)的python工具包。
答案 2 :(得分:1)
ETE toolkit实现了树数据结构的许多高级操作,从遍历函数或节点注释到树图像生成。您可能需要查看its tutorial
答案 3 :(得分:0)
这是一个用于python的clojure的zip库的端口。
https://github.com/trivio/zipper
这是一个不可变的数据结构,它总是为每个操作返回一个新结果。 非常适合函数式编程,或者您希望保留对树进行编辑的历史记录。
您可以操作任何可以用3个函数描述的树:
branch(node):如果节点可以有子节点,则返回true
children(node):返回节点子节点的元组
make_node(node,children):构造一个新节点,以便在修改子节点后替换当前节点。