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 相关文章推荐
使用Node.js和Socket.IO扩展Django的实时处理功能
Apr 20 Python
python简单图片操作:打开\显示\保存图像方法介绍
Nov 23 Python
python SSH模块登录,远程机执行shell命令实例解析
Jan 12 Python
Python实现的径向基(RBF)神经网络示例
Feb 06 Python
CentOS下Python3的安装及创建虚拟环境的方法
Nov 28 Python
如何利用Anaconda配置简单的Python环境
Jun 24 Python
python 字符串常用函数详解
Sep 11 Python
opencv-python 提取sift特征并匹配的实例
Dec 09 Python
tensorflow实现打印ckpt模型保存下的变量名称及变量值
Jan 04 Python
Numpy(Pandas)删除全为零的列的方法
Sep 11 Python
Django web自定义通用权限控制实现方法
Nov 24 Python
Python数据分析之绘图和可视化详解
Jun 02 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中通过smtp发邮件的类,测试通过
2007/01/22 PHP
php中取得URL的根域名的代码
2011/03/23 PHP
php教程 插件机制在PHP中实现方案
2012/11/02 PHP
PHP关联数组的10个操作技巧
2013/01/21 PHP
PHP开源开发框架ZendFramework使用中常见问题说明及解决方案
2014/06/12 PHP
使用PHPMailer实现邮件发送代码分享
2014/10/23 PHP
用Javascript 和 CSS 实现脚注(Footnote)效果
2009/09/09 Javascript
图片翻转效果具体实现代码
2014/01/09 Javascript
JavaScript中的包装对象介绍
2015/01/27 Javascript
HTML+CSS+JS实现完美兼容各大浏览器的TABLE固定列
2015/04/26 Javascript
jQuery+Pdo编写login登陆界面
2016/08/01 Javascript
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
2016/12/14 Javascript
AngularJs ng-change事件/指令的用法小结
2017/11/01 Javascript
bootstrap中selectpicker下拉框使用方法实例
2018/03/22 Javascript
vue-cli脚手架引入弹出层layer插件的几种方法
2019/06/24 Javascript
Laravel 如何在blade文件中使用Vue组件的示例代码
2020/06/28 Javascript
[00:12]DAC2018 Miracle-站上中单舞台,他能否再写奇迹?
2018/04/06 DOTA
python实现从字符串中找出字符1的位置以及个数的方法
2014/08/25 Python
状态机的概念和在Python下使用状态机的教程
2015/04/11 Python
Python连接DB2数据库
2016/08/27 Python
Python实现的快速排序算法详解
2017/08/01 Python
Python实现的随机森林算法与简单总结
2018/01/30 Python
对python:循环定义多个变量的实例详解
2019/01/20 Python
Python 导入文件过程图解
2019/10/15 Python
Python argparse模块应用实例解析
2019/11/15 Python
python交互模式基础知识点学习
2020/06/18 Python
python连接mysql有哪些方法
2020/06/24 Python
django使用graphql的实例
2020/09/02 Python
英国最大的宠物商店:Pets at Home
2019/04/17 全球购物
PHP如何防止SQL注入
2014/05/03 面试题
大学运动会入场词
2014/02/22 职场文书
2014年行风建设工作总结
2014/12/01 职场文书
销售2014年度工作总结
2014/12/08 职场文书
2015年销售内勤工作总结
2015/04/27 职场文书
小学班主任工作经验交流材料
2015/11/02 职场文书
MySQL常用慢查询分析工具详解
2022/08/14 MySQL