data=[

{"cat_id":3,"name":"沙河","parent_id":1},

{"cat_id":4,"name":"sb镇","parent_id":3},

{"cat_id": 1, "name": "北京", "parent_id": 0},

{"cat_id":5,"name":"昌平","parent_id":1},

{"cat_id":6,"name":"青浦","parent_id":2},

{"cat_id": 2, "name": "上海", "parent_id": 0},

]

def get_tree(data):

lists=[]

tree={}

for item in data:

tree[item['cat_id']]=item

for i in data:

if not i['parent_id']:

lists.append(tree[i['cat_id']])

else:

parent_id=i['parent_id']

if "children" not in tree[parent_id]:

tree[parent_id]["children"]=[]

tree[parent_id]['children'].append(tree[i['cat_id']])

return lists

# print(get_tree(data))

# data1=[

# {"cat_id":1,"name":"北京","parent_id":0,

# "childen":[

# {"cat_id":3,"name":"沙河","parent_id":1,"childen":[{"cat_id":4,"name":"sb镇","parent_id":3},]},

# {"cat_id":5,"name":"昌平","parent_id":1},]},

# {"cat_id":2,"name":"上海","parent_id":0,

# "childen":[{"cat_id":6,"name":"青浦","parent_id":2},]},

# ]

# 北京

# -沙河

# --sb镇

# -昌平

# 上海

# -青浦

lis = []

def get_son1(data,parent_id=0,level=0,is_clear=True):

if is_clear:

lis.clear()

for item in data:

if item['parent_id']==parent_id:

item['level']=level

lis.append(item)

get_son1(data,parent_id=item["cat_id"],level=level+1,is_clear=False)

return lis

# re_data=get_son1(data)

# for item in re_data:

# print("-"*item['level']+item['name'])

res_id=[]

def get_son_id_list(data,parent_id,is_clear=True):

if is_clear:

res_id.clear()

#如果parent_id不等与0,就把自己加进去

if parent_id:

res_id.append(parent_id)

for item in data:

#如果改分类的父级id为传过的parent_id,就把它的cat_id,存到res_id,接着找它自己有没有儿子,进行递归

if item['parent_id']==parent_id:

res_id.append(item['cat_id'])

get_son_id_list(data,parent_id=item["cat_id"],is_clear=False)

return res_id

def get_son(data):

lis=[]

for i in data:

if not i['parent_id']:

i['level']=0

lis.append(i)

return lis

python列表功能默写_python 1 默写用递归实现无限极分类 2 默写用树实现无限极分类...相关推荐

  1. python列表字典操作_Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结...

    创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_star ...

  2. python列表生成字典_Python 列表生成式 字典生成式

    Python 列表生成式 & 字典生成式 通过生成式可以更加简洁地生成列表和字典 列表生成式 对比 直接生成数据后加入列表示例: user_list = list() for i in ran ...

  3. python列表浅复制_Python列表的深复制和浅复制示例详解

    一.深复制与浅复制 列表是Python中自带的一种数据结构,在使用列表时,拷贝操作不可避免,下面简单讨论一下列表的深复制(拷贝)与浅复制 首先看代码: l1 = [5, 4, 3, 2, 1] # 用 ...

  4. python列表切片图解_Python列表切片操作实例总结

    本文实例讲述了Python列表切片操作.分享给大家供大家参考,具体如下: 切片指的是列表的一部分. 1 基本用法 指定第一个元素和最后一个元素的索引,即可创建切片 .Python 会在到达指定的第二个 ...

  5. python列表存储乱码_python 列表中文乱码

    今天在学习python列表的时候遇到中文乱码问题,如下: # -*- coding: UTF-8 -*- print "列表" list1 = ['张三',"李四&quo ...

  6. python 列表自动排序_Python学习小技巧之列表项排序的示例代码分享

    这篇文章主要给大家介绍了Python学习小技巧之列表项排序的相关资料,文中介绍的非常详细,需要的朋友们可以参借鉴,下面跟着小编一起来学习学习吧. 本文介绍的是关于Python列表项排序的相关内容,分享 ...

  7. python列表生成器语法_Python 列表生成式\生成器

    Python 列表生成式+生成器 一.列表生成式 1.什么是列表生成器 一种可以便捷地生成列表的表达式,有时候可以替换list.append(变量) 2.需求. 如何将列表中的每个数据都加1 列表:d ...

  8. python列表比较方法_python列表常用方法

    list是一个类,用中括号括上,逗号分隔,元素可以是数字,字符,字符串,也可以是嵌套列表,布尔类型. 1.通过索引取值 li=[1,12,9,'age',['wangtianning',[19,'10 ...

  9. python列表增加一行_Python 列表中的修改、添加和删除元素的实现

    本文介绍的是列表中的修改.添加和删除元素.第一次写博客,如果本文有什么错误,还请大家评论指正.谢谢! 创建的列表大多数都将是动态的,这就意味着列表创建后,将随着程序的运行删减元素. 修改列表元素 修改 ...

  10. python列表的长度_Python 列表/数组(list)长度不足自动补零(补齐元素)

    Python 列表/数组(list)长度不足自动补零(补齐元素) 背景: python3.8 一个三元组列表,需要拆成三个独立列表,然后每个列表长度必须满足5位 如:li = [(0, 15, 33) ...

最新文章

  1. Gartner:2013-2014年全球MSS市场分析
  2. frame页面地址转向跨域解决方法
  3. 【C++grammar】动态类型转换、typeid与RTTI
  4. 超硬核!我统计了BAT笔试面试出现频率最高的五道题,学会了总能碰到一道
  5. 云财经服务器维护,云财经服务器维护
  6. Discuz素材资源下载官网门户+自带论坛 整站源码+带后台+带数据库
  7. 适用于各类软件工具下载页面官网单页静态网站源码
  8. python接口自动化(四十一)- 发xml格式参数的post请求(超详解)
  9. oracle影响性能,影响Oracle性能的几个重要参数
  10. 一起瞅一下那些经典案例是如何产业落地的~
  11. 用计算机算出你的年龄,身体年龄计算器:一分钟算出你的健康年龄(全文)
  12. 解决spring5与thymeleaf版本冲突的问题
  13. 大数据第一季--Hadoop(day7)-徐培成-专题视频课程
  14. 设计思维(Design Thinking)
  15. 大学毕业好几年 转行做IT哪个岗位容易上手?
  16. 机器学习——激活函数sigmoid、tanh、ReLU和softmax
  17. (四)SGE 常用命令
  18. php对比两张数据表,【后端开发】PHP比较两个表不同数据
  19. 【论文笔记】MultiPath: Multiple Probabilistic Anchor TrajectoryHypotheses for Behavior Prediction
  20. 三跨考生准备考研复试(机试)之路(日记版)

热门文章

  1. 电脑安装完软件打不开怎么办
  2. mp3音频格式在线转换器 在线转换MP3格式
  3. java 开发工具eli_二进制开发ELI5 –第1部分
  4. mysql配置secure_file_priv
  5. 简单小方法教你如何快速提高记忆力
  6. 【立创开源】ESP8266制作的1.44寸TFT显示屏太空人天气时钟(st7735)(增加农历显示)(抄作业)
  7. 【VBA研究】智力游戏-蓝色方块
  8. 2018年腾讯春招实习【CDG事业群产品策划岗】面试心得【已录用】
  9. 2021年最新最全APP各大安卓市场应用首发规则
  10. 关于开源云计算平台软件的一些个人想法