python 递归实现节点层级关系
2022/2/27 14:51:20
本文主要是介绍python 递归实现节点层级关系,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
tag = [{'id': 1, 'name': 'xa', 'code': '1000', 'parentCode': 'null'}, {'id': 2, 'name': 'xb', 'code': '1010', 'parentCode': '1000'}, {'id': 3, 'name': 'xc', 'code': '1011', 'parentCode': '1000'}, {'id': 4, 'name': 'xd', 'code': '1111', 'parentCode': '1011'}, {'id': 5, 'name': 'xe', 'code': '1112', 'parentCode': '1011'}, {'id': 6, 'name': 'xf', 'code': '2000', 'parentCode': 'null'}, {'id': 7, 'name': 'xg', 'code': '2010', 'parentCode': '2000'}, {'id': 8, 'name': 'xh', 'code': '2111', 'parentCode': '2010'}] def one(tag): pl =[] for i in tag: if i['parentCode'] == 'null': i['children'] = two(tag,i) pl.append(i) print(pl) def two(tag,parent): cl=[] for i in tag : if i['parentCode'] == parent['code']: cl.append(i) i['children'] = two(tag,i) return cl one(tag)
节点参考https://www.cnblogs.com/mqhpy/p/14636757.html
执行结果
[{ 'id': 1, 'name': 'xa', 'code': '1000', 'parentCode': 'null', 'children': [{ 'id': 2, 'name': 'xb', 'code': '1010', 'parentCode': '1000', 'children': [] }, { 'id': 3, 'name': 'xc', 'code': '1011', 'parentCode': '1000', 'children': [{ 'id': 4, 'name': 'xd', 'code': '1111', 'parentCode': '1011', 'children': [] }, { 'id': 5, 'name': 'xe', 'code': '1112', 'parentCode': '1011', 'children': [] }] }] }, { 'id': 6, 'name': 'xf', 'code': '2000', 'parentCode': 'null', 'children': [{ 'id': 7, 'name': 'xg', 'code': '2010', 'parentCode': '2000', 'children': [{ 'id': 8, 'name': 'xh', 'code': '2111', 'parentCode': '2010', 'children': [] }] }] }]
*第一个函数是先判断有无子节点,再添加到数组中
* 第二个函数是先加到数组中,再判断有无子节点
这篇关于python 递归实现节点层级关系的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-04Python外包有哪些常见的主要库-icode9专业技术文章分享
- 2024-10-02基于深度学习的钢铁缺陷检测系统(yolov8、注意力机制、PyQt5界面、Python)
- 2024-10-01怎么用python搭建一个系统-icode9专业技术文章分享
- 2024-09-30Python基础入门教程
- 2024-09-30获取参数学习:Python中的基础教程
- 2024-09-30Python编程基础详解
- 2024-09-29点击加载学习:Python编程基础教程
- 2024-09-29数据科学五大Python前端库:第二部分
- 2024-09-27使用python 将ETH账户的资产打散
- 2024-09-26Python编程基础