首页 > 其他 > 详细

简单无限递归菜单

时间:2019-11-07 23:29:00      阅读:101      评论:0      收藏:0      [点我收藏+]

res_list = [ {‘cat_id‘:1,‘name‘:‘北京‘,‘parent_id‘:0}, {‘cat_id‘:2,‘name‘:‘杭州‘,‘parent_id‘:0}, {‘cat_id‘:3,‘name‘:‘海淀区‘,‘parent_id‘:1}, {‘cat_id‘:4,‘name‘:‘海淀xx小区‘,‘parent_id‘:3}, {‘cat_id‘:6,‘name‘:‘西湖区‘,‘parent_id‘:2}, {‘cat_id‘:7,‘name‘:‘三墩‘,‘parent_id‘:6}, ]   
  # 创建列表,存放结果 res
= []   
  
def get_tree(data, level=0, parent_id=0, is_clear=True):     
    # 若每次重新调用该方法,则清空列表内上次存放的结果
  
if is_clear: res.clear()      # 循环匹配 for item in data: if item.get(‘parent_id‘) == parent_id:
          # 用于记录当前记录的层级 item[
‘level‘] = level
          # 将结果加入列表 res.append(item)
          # 递归调用函数,继续执行,直到匹配完所有结果 get_tree(data, level
=level+1, parent_id=item.get(‘cat_id‘), is_clear=False) return res get_tree(res_list)
  
 
  # 打印查看效果
print(res) for r in res: print(‘-‘*r.get(‘level‘)+r.get(‘name‘))

 

简单无限递归菜单

原文:https://www.cnblogs.com/hellozizi/p/11816043.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!