首页 > 编程语言 >python 树形结构生成

python 树形结构生成

时间:2023-02-15 18:57:08浏览次数:24  
标签:name item python pid 生成 children 树形 u4f53 id

生成数据



list_data = [
    {'id': 1, 'name': '体育0', 'pid': 0}, 
    {'id': 2, 'name': '体育1', 'pid': 1}, 
    {'id': 3, 'name': '体育2', 'pid': 1},
    {'id': 4, 'name': '体育3', 'pid': 2},
    {'id': 5, 'name': '体育4', 'pid': 2},
    {'id': 6, 'name': '体育5', 'pid': 5},
    {'id': 7, 'name': '体育6', 'pid': 5},
    {'id': 8, 'name': '体育7', 'pid': 5},
    {'id': 8, 'name': '体育7', 'pid': 11},
]
json_tree = [
    {
        "id": 1,
        "name": "\u4f53\u80b20",
        "pid": 0,
        "children": [
            {
                "id": 2,
                "name": "\u4f53\u80b21",
                "pid": 1,
                "children": [
                    {
                        "id": 4,
                        "name": "\u4f53\u80b23",
                        "pid": 2,
                        "children": []
                    },
                    {
                        "id": 5,
                        "name": "\u4f53\u80b24",
                        "pid": 2,
                        "children": [
                            {
                                "id": 6,
                                "name": "\u4f53\u80b25",
                                "pid": 5,
                                "children": []
                            },
                            {
                                "id": 7,
                                "name": "\u4f53\u80b26",
                                "pid": 5,
                                "children": []
                            },
                            {
                                "id": 8,
                                "name": "\u4f53\u80b27",
                                "pid": 5,
                                "children": []
                            }
                        ]
                    }
                ]
            },
            {
                "id": 3,
                "name": "\u4f53\u80b22",
                "pid": 1,
                "children": []
            }
        ]
    }
]


def get_list(pid):
    data = []

    for x in list_data:
        if x['pid'] == pid:
            next_pid = x['id']
            x['children'] = get_list(next_pid)
            data.append(x)

    return data


def traversal_tree(path, pid):
    for index, item in enumerate(path):
        if len(item['children']) > 0:
            print('parent  pid:', pid, '', item['id'])
            return traversal_tree(item['children'], item['id'])
        else:
            print('pid:', pid, '', item['id'])


if __name__ == '__main__':
    traversal_tree(json_tree, 0)

标签:name,item,python,pid,生成,children,树形,u4f53,id
From: https://www.cnblogs.com/guanchaoguo/p/17124301.html

相关文章

  • 【保姆级】Python最新版3.11.1开发环境搭建,看这一篇就够了
    工欲善其事必先利其器,在使用Python开发程序之前,在计算机上搭建Python开发环境是必不可少的环节,目前Python最新稳定版本是3.11.1,且支持到2027年,如下图所示本文手把手带你......
  • python - 选择排序
    前言选择排序(Selectionsort)是一种基本的排序算法。原理:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置。然后再从剩余的未排序元素中寻找......
  • Python黑客编程之权限提升
    描述登录目标机器后,需要获取system权限,可选择方式有攻击驱动程序或者系统内核,较难且容易导致系统奔溃,考虑到某些高权限任务所依赖的文件或者程序可以被低权限用户修改,如......
  • 【学习笔记】多项式学习笔记4:生成函数
    参考资料:OI-Wiki、APJ'spdf、学长的课件生成函数\(\text{GF(GeneratingFunction)}\)定义定义一个数列\(\{a_n\}\)的生成函数(或母函数)\(F(x)\)为:\[F(x)=\sum_{i\g......
  • colab上更换python版本或者换成tensorflow1.x版本
    2023-02-15目前colab已经不支持使用:%tensorflow_version1.x来切换使用tensorflow1.x版本了。解决方法如下:cd/content/drive/MyDrive/#安装python,可选择自己需要的......
  • Python黑客编程之数据渗漏
    描述入侵到目标主机后,发现有趣的文件,将其加密后,通过ftp文件\邮件\第三方网站的方式将密文传输到自己的机子上,在本地还原数据文件利用邮件传输#smtpsmtp_server='s......
  • Python+Django(4):创建其他网页(模板继承)
    模板继承:1,修改主页父模板:抽取通用元素,在index.html同级目录下新建base.html<p><ahref="{%url'learning_logs:index'%}">LearningLog</a></p>{%blockcont......
  • Python黑客编程之数据加解密
    描述利用非对称密钥RSA和对称密钥AES算法对传输数据进行加密分析发送方本地保存有RSA公钥,发送数据前,利用AES算法对传输数据明文进行加密,利用RSA算法对AES的密钥进行......
  • python的学习之路Day4
    2023.2.15Day42023.2.15Day4今日内容概要主题:数据类型(先熟悉)字符串列表字典布尔元组集合与用户交互基本运算符今日内容详细字符串str#用来记录描述性......
  • flask_openv_video_streaming_来自miguelgrinberg大佬_写pythonsocketio的那个
    E:\song2\树莓派视频流\flask_opencv_video_stream\flask-video-streaming\app.py#!/usr/bin/envpythonfromimportlibimportimport_module#importosfromflaski......