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 08 Python
python 字典(dict)遍历的四种方法性能测试报告
Jun 25 Python
Python中方法链的使用方法
Feb 23 Python
Python遍历目录并批量更换文件名和目录名的方法
Sep 19 Python
Python获取文件所在目录和文件名的方法
Jan 12 Python
python实现FTP服务器服务的方法
Apr 11 Python
python matplotlib 注释文本箭头简单代码示例
Jan 08 Python
Python 使用threading+Queue实现线程池示例
Dec 21 Python
pytorch GAN伪造手写体mnist数据集方式
Jan 10 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
Mar 28 Python
Python基于Faker假数据构造库
Nov 30 Python
pycharm安装深度学习pytorch的d2l包失败问题解决
Mar 25 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的朋友 经常问的一些问题。不断更新
2011/08/11 PHP
解析php安全性问题中的:Null 字符问题
2013/06/21 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
2014/11/18 PHP
PHP获取指定月份第一天和最后一天的方法
2015/07/18 PHP
PHP翻页跳转功能实现方法
2020/11/30 PHP
Laravel搭建后台登录系统步骤详解
2016/07/26 PHP
thinkPHP中验证码的简单实现方法
2016/12/05 PHP
JS实现同时搜索百度和必应的方法
2015/01/27 Javascript
浅谈JavaScript的函数及作用域
2016/12/30 Javascript
JS正则表达式常见用法实例详解
2018/06/19 Javascript
AngularJS上传文件的示例代码
2018/11/10 Javascript
JavaScript JMap类定义与使用方法示例
2019/01/22 Javascript
详解Vue.js 作用域、slot用法(单个slot、具名slot)
2019/10/15 Javascript
Vue打包部署到Nginx时,css样式不生效的解决方式
2020/08/03 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
2020/10/19 Javascript
[31:55]完美世界DOTA2联赛循环赛 IO vs GXR BO2第一场 11.04
2020/11/05 DOTA
重命名批处理python脚本
2013/04/05 Python
用python 制作图片转pdf工具
2015/01/30 Python
python 实现调用子文件下的模块方法
2018/12/07 Python
python中enumerate() 与zip()函数的使用比较实例分析
2019/09/03 Python
python3 tkinter实现添加图片和文本
2019/11/26 Python
pytorch快速搭建神经网络_Sequential操作
2020/06/17 Python
Crucial英睿达法国官网:内存条及SSD固态硬盘升级
2018/07/13 全球购物
法国房车租赁网站:Yescapa
2019/08/26 全球购物
在线实验室测试:HealthLabs.com
2020/05/03 全球购物
南京某软件公司的.net面试题
2015/11/30 面试题
卫校中专生的自我评价
2014/01/15 职场文书
高中英语演讲稿范文
2014/04/24 职场文书
承兑汇票转让证明怎么写?
2014/11/30 职场文书
2015年宣传部工作总结范文
2015/03/31 职场文书
售后服务质量承诺书
2015/04/29 职场文书
校运会广播稿
2015/08/19 职场文书
感恩信:写给爸爸妈妈的一封感谢信
2019/09/12 职场文书
Java数据开发辅助工具Docker与普通程序使用方法
2021/09/15 Java/Android
Python实现猜拳与猜数字游戏的方法详解
2022/04/06 Python
HTML5页面打开微信小程序功能实现
2022/09/23 HTML / CSS