Python多叉树的构造及取出节点数据(treelib)的方法


Posted in Python onAugust 09, 2019

项目:

基于Pymysql的专家随机抽取系统

引入库函数:

>>> import treelib
>>> from treelib import Tree, Node

构造节点类:

>>> class Nodex(object): \
    def __init__(self, num): \
      self.num = num

构造多叉树:(注意节点的第2个属性已标红,它是节点ID,为str类型,不能与其他节点重复,否则构建节点失败)

>>> tree1 = Tree()
>>> tree1.create_node('Root', 'root', data = Nodex('3'));\
   tree1.create_node('Child1', 'child1', parent = 'root', data =Nodex('4'));\
   tree1.create_node('Child2', 'child2', parent = 'root', data =Nodex('5'));\
   tree1.create_node('Child3', 'child3', parent = 'root', data =Nodex('6'));\

构造结果:

>>> tree1.show()
Root
├── Child1
├── Child2
└── Child3

>>> tree1.show(data_property = 'num')
3
├── 4
├── 5
└── 6

打印节点信息:(其实节点是以字典的形式存储的)

>>> tree1.nodes
{'root': Node(tag=Root, identifier=root, data=<__main__.Nodex object at 0x000002265C6A9550>), 'child1': Node(tag=Child1, identifier=child1, data=<__main__.Nodex object at 0x000002265C6A9E10>)}

取出child1节点存储的数据:

>>> tree1.nodes['child1'].data.num
'4'

以上这篇Python多叉树的构造及取出节点数据(treelib)的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python函数嵌套实例
Sep 23 Python
python实现闹钟定时播放音乐功能
Jan 25 Python
python 删除列表里所有空格项的方法总结
Apr 18 Python
详谈Python3 操作系统与路径 模块(os / os.path / pathlib)
Apr 26 Python
记录Python脚本的运行日志的方法
Jun 05 Python
python3+PyQt5 实现Rich文本的行编辑方法
Jun 17 Python
python实现的分层随机抽样案例
Feb 25 Python
Django-xadmin+rule对象级权限的实现方式
Mar 30 Python
Python类class参数self原理解析
Nov 19 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
Dec 23 Python
详解Python中openpyxl模块基本用法
Feb 23 Python
Python提取PDF指定内容并生成新文件
Jun 09 Python
一行python实现树形结构的方法
Aug 09 #Python
解决django同步数据库的时候app models表没有成功创建的问题
Aug 09 #Python
Python3 venv搭建轻量级虚拟环境的步骤(图文)
Aug 09 #Python
Python Django 命名空间模式的实现
Aug 09 #Python
Mac安装python3的方法步骤
Aug 09 #Python
对python 树状嵌套结构的实现思路详解
Aug 09 #Python
Python  Django 母版和继承解析
Aug 09 #Python
You might like
PHP跨时区(UTC时间)应用解决方案
2013/01/11 PHP
使用HMAC-SHA1签名方法详解
2013/06/26 PHP
PHP函数rtrim()使用中的怪异现象分析
2017/02/24 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
仅IE不支持setTimeout/setInterval函数的第三个以上参数
2011/05/25 Javascript
js实现图片放大和拖拽特效代码分享
2015/09/05 Javascript
AngularJS入门教程之AngularJS指令
2016/04/18 Javascript
简单讲解jQuery中的子元素过滤选择器
2016/04/18 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
利用Javascript实现BMI计算器
2016/08/16 Javascript
vue实现app页面切换动画效果实例
2017/05/23 Javascript
nodejs中art-template模板语法的引入及冲突解决方案
2017/11/07 NodeJs
jQuery中each方法的使用详解
2018/03/18 jQuery
vue 表单输入格式化中文输入法异常问题
2018/05/30 Javascript
vue slot与传参实例代码讲解
2019/04/28 Javascript
vue.js 2.*项目环境搭建、运行、打包发布的详细步骤
2019/05/01 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
vue中的过滤器及其时间格式化问题
2020/04/09 Javascript
JavaScript语句错误throw、try及catch实例解析
2020/08/18 Javascript
[48:23]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#1COL VS EG第一局
2016/03/05 DOTA
从零学python系列之新版本导入httplib模块报ImportError解决方案
2014/05/23 Python
使用python 打开文件并做匹配处理的实例
2019/01/02 Python
Python编写合并字典并实现敏感目录的小脚本
2019/02/26 Python
使用pyinstaller打包PyQt4程序遇到的问题及解决方法
2019/06/24 Python
python 图片去噪的方法示例
2019/07/09 Python
关于Numpy中的行向量和列向量详解
2019/11/30 Python
小结Python的反射机制
2020/09/28 Python
解决python3.x安装numpy成功但import出错的问题
2020/11/17 Python
英国领先的在线高尔夫商店:Scottsdale Golf
2019/08/26 全球购物
岗位职责定义及内容
2013/11/08 职场文书
个人自我评价和职业目标
2014/01/24 职场文书
怎么写好自荐书
2014/03/02 职场文书
2015年驾驶员工作总结
2015/04/29 职场文书
公司档案管理制度
2015/08/05 职场文书
Windows10下安装MySQL8
2021/04/06 MySQL
Python使用plt.boxplot()函数绘制箱图、常用方法以及含义详解
2022/08/14 Python