django-树形结构

 

树形结构:首先是构造一种层级关系,主要用于层级菜单,或是一种递进的情况.

例:下面是一种层级关系,Pid字段后面的数字,指定的就是id数字的子层级.Pid等于None是根目录.
comment_list=[ {"id":1,"content":"...","Pid":None,"children_comments":[]}, {"id":2,"content":"...","Pid":None,"children_comments":[]}, {"id":3,"content":"...","Pid":None,"children_comments":[]}, {"id":4,"content":"...","Pid":1,"children_comments":[]}, {"id":5,"content":"...","Pid":1,"children_comments":[]}, {"id":6,"content":"...","Pid":4,"children_comments":[]}, {"id":7,"content":"...","Pid":3,"children_comments":[]}, {"id":8,"content":"...","Pid":7,"children_comments":[]}, {"id":9,"content":"...","Pid":None,"children_comments":[]}, ]
首先把他们变成键值对,放在字典里.
comment_dict={}
    
for i in comment_list:
    comment_list[i["id"]]=i   #comment_dict的值就变成 ={1:{"id":1,"content":"...","Pid":None,"children_comments":[]},2:{"id":2,"content":"...","Pid":None,"children_comments":[]}...}

ret=[]
for comment in comment_list:
  pid=comment['Pid']
  if pid: #当pid字段不为空
    comment_dict[pid]['children_comments'].append(comment) #pid值不为空,就是别人的子集,所以添加到相应父级的children_comments下.
  else:
    ret.append(comment)          #把一些不要的数据取出来,

树形结构,利用的就是可变类型结构.
字典和列表类型,当你赋值给一个变量后,当在别的时候变化,他原来的代码也会跟着改变.
 
  

 



 

转载于:https://www.cnblogs.com/52forjie/p/7906732.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值