首页 > 编程语言 >Python 对树结构数据输出序号(文档目录)层级

Python 对树结构数据输出序号(文档目录)层级

时间:2023-12-05 15:59:48浏览次数:36  
标签:中止 层级 title Python 树结构 干预 试验 key children

input_data = [{  
    'title': '试验干预中止和参与者退出试验',  
    'children': [  
        {  
            'title': '试验干预中止',  
            'children': [  
                {  
                    'title': '永久中止试验干预的标准',  
                    'children': []  
                },  
                {  
                    'title': '暂时中止或中断试验干预',  
                    'children': []  
                },  
                {  
                    'title': '再激发',  
                    'children': []  
                }  
            ]  
        },  
        {  
            'title': '参与者退出试验',  
            'children': []  
        },  
        {  
            'title': '失访',  
            'children': []  
        },  
    ]  
},{  
    'title': '试验干预中止和参与者退出试验',  
    'children': [  
        {  
            'title': '试验干预中止',  
            'children': [  
                {  
                    'title': '永久中止试验干预的标准',  
                    'children': []  
                },  
                {  
                    'title': '暂时中止或中断试验干预',  
                    'children': []  
                },  
                {  
                    'title': '再激发',  
                    'children': []  
                }  
            ]  
        },  
        {  
            'title': '参与者退出试验',  
            'children': []  
        },  
        {  
            'title': '失访',  
            'children': []  
        },  
    ]  
}]  

Python 代码

def print_hierarchy(data, current_key="", level=1):
    result = {}
    for i, item in enumerate(data):
        new_key = f"{level}" if current_key == "" else f"{current_key}.{i + 1}"
        result[new_key] = i
        print(new_key, item['title'], i,result,current_key)
        if item['children']:
            print_hierarchy(item['children'], new_key, level + 1)
        level += 1
    return result
print_hierarchy(input_data)

 

打印输出结果如下:
1 试验干预中止和参与者退出试验
1.1 试验干预中止
1.1.1 永久中止试验干预的标准
1.1.2 暂时中止或中断试验干预
1.1.3 再激发
1.2 参与者退出试验
1.3 失访
2 试验干预中止和参与者退出试验
2.1 试验干预中止
2.1.1 永久中止试验干预的标准
2.1.2 暂时中止或中断试验干预
2.1.3 再激发
2.2 参与者退出试验
2.3 失访

 

标签:中止,层级,title,Python,树结构,干预,试验,key,children
From: https://www.cnblogs.com/lajf/p/17877433.html

相关文章

  • Python——第五章:OS模块
    os模块提供了很多允许你的程序与操作系统直接交互的功能importos得到当前工作目录,即当前Python脚本工作的目录路径:os.getcwd()返回指定目录下的所有文件和目录名:os.listdir()函数用来删除一个文件:os.remove()删除多个目录:os.removedirs(r"c:\python")检验给出的路径是......
  • Python (NUDT&&educoder特别关心版)
    Python(NUDT&&educoder特别关心版)主题:浅谈程序设计与算法基础(一份融合IoWiki与educoder实训作业的整理笔记报告)报告人:4p11b彭轩昂(这个不重要)Part1总述与回顾(OverviewandReview)学习Python的优势Python的优点Python是一门解释型语言:Python不需要编......
  • Python闭包概念入门
    '''Python闭包概念入门闭包(Closure)是Python中一个重要的工具。闭包:高阶函数中,内层函数携带外层函数中的参数、变量及其环境,一同存在的状态(即使已经离开了创造它的外层函数),被称之为闭包。被携带的外层变量称之为:自由变量,也被形容为:外层变量被闭包......
  • fileinput:一个txt文件的Python库
    文件处理和输入流时,Python中的fileinput模块是一个非常有用的工具。fileinput模块允许迭代处理多个文件,同时还可以处理标准输入流。以下是Python中fileinput模块的五个常见用法。1.逐行迭代文件fileinput模块可以用于逐行迭代处理文件中的内容。importfileinputforlinei......
  • python在word文件指定的文字下划线
    #coding:utf-8importosfromwin32com.clientimportDispatchdefget_string_index(substring,string):"""获取同一字符串中的多个相同字符串的起始索引:paramsubstring:需查找的字符串:paramstring:被查找的字符串:return:"""in......
  • python第二天
    0.以下哪个变量的命名不正确?为什么?  (A)MM_520  (B)_MM520_  (C)520_MM  (D)_520_MMC,数字不能在首位1.在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗?>>>myteacher='小甲鱼'>>>yourteacher=myteacher>>>yourteacher='黑夜'>>>print(mytea......
  • 实例讲解Python 解析JSON实现主机管理
    本文分享自华为云社区《Python解析JSON实现主机管理》,作者:LyShark。JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,它以易于阅读和编写的文本形式表示数据。JSON是一种独立于编程语言的数据格式,因此在不同的编程语言中都有对应的解析器和生成器。JSON格式的设计......
  • 【Python/数据库】SQLAlchemy基础操作
    一、SQLAlchemy——创建表#ORM#1.Class-Obj#2.创建数据库引擎#3.将所有的Class序列化为数据表#4.ORM操作-CRUD(增删改查操作的简称)1.创建一个class#create_table.pyfromsqlalchemy.ext.declarativeimportdeclarative_baseBase=declarative_base......
  • 【Python/数据库】SQLAlchemy一对多,多对多操作
    SQLAlchemy一对多操作1.创建多表#create_table_ForeginKey.pyfromsqlalchemy.ext.declarativeimportdeclarative_basefromsalalchemyimportColumn,INT,VARCHAR,ForeignKeyfromsqlalchemyimportcreate_engineBase=declarative_base()classStudent(Base)......
  • python练习
    1将数字汉字符号一起打印2大小写转换首字母大写3使用数学函数4注释5对字符串求长度6通过索引获取单个字符7布尔类型8空值类型9查找所属类型type10列表将数字汉字符号一起打印name="璃月"date="12月5号"message=f'{name}您好,今天是:{date}'print(message)或者可以......