Python教程

python 递归实现节点层级关系

本文主要是介绍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 递归实现节点层级关系的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!