数据构造---家族树
生活随笔
收集整理的這篇文章主要介紹了
数据构造---家族树
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 第一種(家族關系)
comment_list = [{"id": 1, "name": "a", "content": "xx", "pid":None},{"id": 2, "name": "a", "content": "xx", "pid":1},{"id": 3, "name": "a", "content": "xx", "pid":1},{"id": 4, "name": "a", "content": "xx", "pid":3}, ]comment_dict = {}######### 家族樹關系的構建 ############ # 1.循環初始數據 添加children 構造字典格式 for item in comment_list:item["children"] = []comment_dict[item["id"]] = item# 2. 循環初數據 判斷pid,如果有pid,添加到相應的父級 for row in comment_list:if not row["pid"]:continuepid = row["pid"]comment_dict[pid]["children"].append(row)print(comment_dict)2. 第二種(父子關系)
comment_list = [{"id": 1, "name": "a", "content": "1"},{"id": 2, "name": "a", "content": "2"},{"id": 3, "name": "a", "content": "3"},{"id": 4, "name": "a", "content": "4"}, ] son_list = [{"id": 1, "name": "a1", "content": "1-1", "replay_id": 1,"depth": 2, "root": 1},{"id": 2, "name": "a1", "content": "2-1", "replay_id": 2,"depth": 2, "root": 2},{"id": 3, "name": "a1", "content": "3-1", "replay_id": 3,"depth": 2, "root": 3},{"id": 4, "name": "a1", "content": "4-1", "replay_id": 4,"depth": 2, "root": 4},{"id": 5, "name": "a1", "content": "4-2", "replay_id": 4,"depth": 2, "root": 4}, ]comment_dict = {}######### 二級評論的處理 ############ # 1.循環初始數據 添加children 構造初始化字典格式 for item in comment_list:item["children"] = []comment_dict[item["id"]] = item# 2. 循環二級評論 用replay_id,去初始化的字典里面,找到對應的父級,添加到children里面 for row in son_list:replay_id = row["replay_id"]if replay_id in son_list:comment_dict[replay_id]["children"].append(row)print(comment_dict) print(comment_dict.values())總結
以上是生活随笔為你收集整理的数据构造---家族树的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 51单片机对GPS卫星信号的解码并通过L
- 下一篇: Crystal Reports - Ad