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)
posted @ 2021-04-09 13:42  MiaoQinHong  阅读(1256)  评论(0编辑  收藏  举报