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 从远程服务器下载东西的代码
Feb 10 Python
Python基于smtplib实现异步发送邮件服务
May 28 Python
使用Python脚本实现批量网站存活检测遇到问题及解决方法
Oct 11 Python
python使用turtle绘制分形树
Jun 22 Python
对Python中创建进程的两种方式以及进程池详解
Jan 14 Python
75条笑死人的知乎神回复,用60行代码就爬完了
May 06 Python
利用Python实现Shp格式向GeoJSON的转换方法
Jul 09 Python
python删除文件夹下相同文件和无法打开的图片
Jul 16 Python
Python socket非阻塞模块应用示例
Sep 12 Python
Python OpenCV读取显示视频的方法示例
Feb 20 Python
Python 操作 PostgreSQL 数据库示例【连接、增删改查等】
Apr 21 Python
OpenCV图片漫画效果的实现示例
Aug 18 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 读取shell管道传输过来的内容
2010/03/01 PHP
PHP 数组排序方法总结 推荐收藏
2010/06/30 PHP
PHP设置进度条的方法
2015/07/08 PHP
PHP魔术方法使用方法汇总
2016/02/14 PHP
Yii控制器中操作视图js的方法
2016/07/04 PHP
laravel实现按月或天或小时统计mysql数据的方法
2019/10/09 PHP
深入理解JavaScript定时机制
2010/10/29 Javascript
20款非常优秀的 jQuery 工具提示插件 推荐
2012/07/15 Javascript
JS写的贪吃蛇游戏(个人练习)
2013/07/08 Javascript
如何从jQuery的ajax请求中删除X-Requested-With
2013/12/11 Javascript
jQuery动态创建html元素的常用方法汇总
2014/09/05 Javascript
jQuery插件MixItUp实现动画过滤和排序
2015/04/12 Javascript
基于JavaScript实现一定时间后去执行一个函数
2015/12/14 Javascript
仅30行代码实现Javascript中的MVC
2016/02/15 Javascript
Bootstrap整体框架之JavaScript插件架构
2016/12/15 Javascript
Bootstrap源码解读按钮(5)
2016/12/23 Javascript
在Js页面通过POST传递参数跳转到新页面详解
2017/08/25 Javascript
javascript前端实现多视频上传
2020/12/13 Javascript
[04:29]2014DOTA2国际邀请赛 主赛事第三日TOPPLAY
2014/07/21 DOTA
python实现从字符串中找出字符1的位置以及个数的方法
2014/08/25 Python
10个易被忽视但应掌握的Python基本用法
2015/04/01 Python
Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例
2018/05/04 Python
python处理两种分隔符的数据集方法
2018/12/12 Python
基于Python第三方插件实现西游记章节标注汉语拼音的方法
2020/05/22 Python
python3.7添加dlib模块的方法
2020/07/01 Python
美国知名户外用品畅销中心:Sierra Trading Post
2016/07/19 全球购物
优衣库英国官网:UNIQLO英国
2016/12/25 全球购物
英国度假别墅预订:Sykes Cottages
2017/06/12 全球购物
2014政府领导班子对照检查材料思想汇报(3篇)
2014/09/26 职场文书
代办社保委托书范文
2014/10/06 职场文书
初中军训感言
2015/08/01 职场文书
2016秋季校长开学典礼致辞
2015/11/26 职场文书
解决hive中导入text文件遇到的坑
2021/04/07 Python
MySQL 如何分析查询性能
2021/05/12 MySQL
聊聊基于pytorch实现Resnet对本地数据集的训练问题
2022/03/25 Python
Spring Data JPA框架自定义Repository接口
2022/04/28 Java/Android