Python Treelib 多叉树 数据结构 中文使用帮助文档
树,对于计算机编程语言来说是一个重要的数据结构。它具有广泛的应用,比如文件系统的分层数据结构和机器学习中的一些算法。这里创建了treelib来提供Python中树数据结构的高效实现。
1.安装
主要通过pip和easy_install进行安装
windows下:
pip install treelib
Linux下:
sudo easy_install -U treelib
License许可:
Redistributed under Apache License (2.0) since version 1.3.0.
Source:Github:caesar0301/treelib
2.类定义
主要分为Tree和Node两个类,以支持多叉树的实现
2.1.Tree类
魔法方法:
构造函数:新建一棵树或通过深拷贝、浅拷贝方式复制一棵树
Tree(self, tree=None, deep=False)
len取长度:返回树的节点个数,同Tree.size()
len(Tree)
str字符串:Tree对象转换为str对象,可输出
str(Tree)
unicode字符串:Tree对象转换为unicode对象,可输出
unicode(Tree)
方法:
add_node(self, node, parent=None)
向树添加一个node节点,该节点为Node类对象,其父节点为parent
all_nodes(self)
以list返回所有节点
children(self, nid)
返回以nid为标识(identifier)子节点,nid不存在则返回list为空
contains(self, nid)
检查树中是否包含以nid为标识的节点
create_node(self, tag=None, identifier=None, parent=None, data=None)
以parent为父节点,在树上创建一个节点(类似于创建Node对象,在add_node添加Node)
depth(self, node=None)
返回树的深度(int),若给定node则返回以该节点为根的树的深度
expand_tree(self, nid=None, mode=1, filter=None, key=None, reverse=False)
Python生成器,松散地基于 John R. Anderson, Albert T. Corbett, and Brian J. Reiser的一个算法 (’Essential LISP’ , page 239-241)
UPDATE: the @filter function is performed on Node object during traversing.
UPDATE: the @key and @reverse are present to sort nodes at each level.
get_node(self, nid)
返回以nid为标识的节点,nid不存在则返回为空
is_branch(self, nid)
返回以nid为节点的子节点标识(identifier
)的list列表,nid不存在则返回list为空
leaves(self, root=None)
返回所有叶节点对象list列表,若给定root则返回以root为根节点的树的所有叶节点对象list列表
level(self, nid, filter=None