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迭代和迭代器
Mar 28 Python
对Python的Django框架中的项目进行单元测试的方法
Apr 11 Python
Python的socket模块源码中的一些实现要点分析
Jun 06 Python
解决Python 遍历字典时删除元素报异常的问题
Sep 11 Python
python 获取文件下所有文件或目录os.walk()的实例
Apr 23 Python
python多行字符串拼接使用小括号的方法
Mar 19 Python
Python 爬取必应壁纸的实例讲解
Feb 24 Python
浅谈matplotlib.pyplot与axes的关系
Mar 06 Python
文件上传服务器-jupyter 中python解压及压缩方式
Apr 22 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
May 27 Python
Python扫描端口的实现
Jan 25 Python
Biblibili视频投稿接口分析并以Python实现自动投稿功能
Feb 05 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
adodb与adodb_lite之比较
2006/12/31 PHP
Uchome1.2 1.5 代码学习 common.php
2009/04/24 PHP
理解和运用PHP中的多态性[译]
2011/08/02 PHP
php实现zip压缩文件解压缩代码分享(简单易懂)
2014/05/10 PHP
PHP生成网站桌面快捷方式代码分享
2014/10/11 PHP
PHP callback函数使用方法和注意事项
2015/01/23 PHP
php自定义urlencode,urldecode函数实例
2015/03/24 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
2018/08/02 PHP
Jquery 插件学习实例1 插件制作说明与tableUI优化
2010/04/02 Javascript
jquery实现微博文字输入框 输入时显示输入字数 效果实现
2013/07/12 Javascript
setInterval()和setTimeout()的用法和区别示例介绍
2013/11/17 Javascript
js由下向上不断上升冒气泡效果实例
2015/05/07 Javascript
探究Javascript模板引擎mustache.js使用方法
2016/01/26 Javascript
AngularJS入门教程之数据绑定用法示例
2016/11/01 Javascript
javascript设置文本框光标的方法实例小结
2016/11/04 Javascript
微信小程序实现页面跳转传值以及获取值的方法分析
2017/12/18 Javascript
node+express框架中连接使用mysql(经验总结)
2018/11/10 Javascript
判断“命令按钮”是否被鼠标单击详解
2019/07/31 Javascript
小程序分享链接onShareAppMessage的具体用法
2020/05/22 Javascript
Antd的Table组件嵌套Table以及选择框联动操作
2020/10/24 Javascript
教你如何在Django 1.6中正确使用 Signal
2014/06/22 Python
tensorflow入门之训练简单的神经网络方法
2018/02/26 Python
浅析pandas 数据结构中的DataFrame
2019/10/12 Python
sklearn-SVC实现与类参数详解
2019/12/10 Python
Autopep8的使用(python自动编排工具)
2021/03/02 Python
CSS3与动画有关的属性transition、animation、transform对比(史上最全版)
2017/08/18 HTML / CSS
澳大利亚排名第一的露营和户外设备在线零售商:Outbax
2020/05/06 全球购物
管理学专业个人求职信范文
2013/12/13 职场文书
上班打牌检讨书
2014/02/07 职场文书
成语的广告词
2014/03/19 职场文书
《周恩来的四个昼夜》观后思想汇报范文两篇
2014/09/10 职场文书
2014年会计个人工作总结
2014/11/24 职场文书
家庭聚会祝酒词
2015/08/11 职场文书
SpringBoot连接MySQL获取数据写后端接口的操作方法
2021/11/02 MySQL
MySQL数据库实验实现简单数据库应用系统设计
2022/06/21 MySQL
一文了解Java动态代理的原理及实现
2022/07/07 Java/Android