首页 > 编程语言 >python 递归树状结构 和 排序

python 递归树状结构 和 排序

时间:2024-03-25 11:35:32浏览次数:27  
标签:category sort 递归 树状 python tree item tmp children

排序

 def recursive_sort(self, categories):
        categories.sort(key=lambda x: x['sort'])
        for category in categories:
            if category['children']:
                category['children'] = self.recursive_sort(category['children'])

        return categories

树状

    def list_to_tree(self, data, parent=None):
        tree = []
        for item in data:
            tmp = {
                "name": item.name,
                "uuid": item.uuid,
                "category_type": item.category_type,
                "parent_category_id": item.parent_category_id,
                "add_datetime": item.add_datetime,
                "sort": item.sort,
                "children": [],
            }
            if tmp['parent_category_id'] == parent:
                children = self.list_to_tree(data, tmp['uuid'])
                if len(children) > 0:
                    tmp['children'] = children
                tree.append(tmp)

        return tree

标签:category,sort,递归,树状,python,tree,item,tmp,children
From: https://www.cnblogs.com/guanchaoguo/p/18094014

相关文章

  • Python 答疑辅导
    写在前面的话亲爱的小伙伴们,我是负责Python答疑的老师,很高兴您们踏进编程的大门,并选择Python作为一个“敲门砖”。Python语言由于它的易学性和易理解性,深受小伙伴们的喜欢。在当下人工智能与机器学习发展势头如火如荼,Python语言在这个领域可谓是编程语言中的佼佼者。......
  • Python数据匹配和记录链接库之recordlinkage使用详解
    概要Python的recordlinkage库为数据匹配和记录链接提供了一个强大的工具集,使得从不同数据源识别重复或相关记录变得简单高效。这对于数据清洗、合并数据集、实体识别等任务至关重要。recordlinkage库简介recordlinkage提供了一套全面的工具来进行复杂的记录比较、匹配和......
  • Python JIT 编译器库之Pyjion使用详解
      概要Pyjion是一个针对Python解释器的JIT编译器,旨在提高Python代码的性能。本文将深入探讨Pyjion库的特性、用法,并通过丰富的示例代码展示其在实际项目中的应用。Pyjion简介Pyjion是一个用于Python解释器的JIT(即时编译)编译器,它的目标是通过实时编译Py......
  • 从静态到动态化,Python数据可视化中的Matplotlib和Seaborn
    本文分享自华为云社区《Python数据可视化大揭秘:Matplotlib和Seaborn高效应用指南》,作者:柠檬味拥抱。安装Matplotlib和Seaborn首先,确保你已经安装了Matplotlib和Seaborn库。如果没有安装,可以使用以下命令进行安装:pipinstallmatplotlibseabornMatplotlib基础Matplotlib是......
  • python抓取百度翻译
    第一步点击立即翻译查看请求的翻译接口第二步复制接口域名后的请求链接部分第三步点击开发者工具栏上的source选项卡,找到右边栏的XHR/fetchBreakpoints,点击后面的+号粘贴字符串第四步点击立即翻译找到调用接口的代码第五步如果找到不是真正的调接口的代码,需要上他的......
  • IPython刷新函数模块
    技术背景IPython是一个非常灵活好用的python终端工具,而且比Python自带的终端工具还多了命令行高亮和自动索引的功能,也是常用的JupyterNotebook的基础工具。在使用IPython的过程中可以使用它的一些独有的功能——直接运行Shell命令行,和魔术命令。本文介绍的是其中一种魔术命令—......
  • 第一个Python程序(上)
    1第一个HelloPython程序1.1Python源程序的基本概念Python源程序就是一个特殊格式的文本文件,可以使用任意文本编辑软件做Python的开发Python程序的文件扩展名通常都是.py1.2演练步骤新建study_Python目录在study_Python目录下新建hello_python.p......
  • Python Flask框架 -- ORM模型外键与表关系
    表关系关系型数据库一个强大的功能,就是多个表之间可以建立关系。比如文章表中,通常需要保存作者数据,但是我们不需要直接把作者数据放到文章表中,而是通过外键引用用户表。这种强大的表关系,可以存储非常复杂的数据,并且可以让查询非常迅速。在Flask-SQLAlchemy中,同样也支持表关系......
  • Python综合实战案例-数据清洗&分析
    写在前面:本次是根据前文讲解的爬虫、数据清洗、分析进行的一个纵隔讲解案例,也是对自己这段时间python爬虫、数据分析方向的一个总结。本例设计一个豆瓣读书数据⽂件,book.xlsx⽂件保存的是爬取豆瓣⽹站得到的图书数据,共60671条。下⾯进⾏探索性数据分析。文章目录......
  • python综合实战案例-数据分析
    Python是进行数据分析的好工具,今天就是借助一个案例给大家进行数据分析讲解。本例设计一个log.txt⽂件,该文件记录了某个项⽬中某个api的调⽤情况,采样时间为每分钟⼀次,包括调⽤次数、响应时间等信息,⼤约18万条数据。下⾯进⾏探索性数据分析。一、分析api调用次数import......