数据构造---家族树
生活随笔
收集整理的這篇文章主要介紹了
数据构造---家族树
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 第一種(家族關(guān)系)
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 = {}######### 家族樹關(guān)系的構(gòu)建 ############ # 1.循環(huán)初始數(shù)據(jù) 添加children 構(gòu)造字典格式 for item in comment_list:item["children"] = []comment_dict[item["id"]] = item# 2. 循環(huán)初數(shù)據(jù) 判斷pid,如果有pid,添加到相應(yīng)的父級(jí) for row in comment_list:if not row["pid"]:continuepid = row["pid"]comment_dict[pid]["children"].append(row)print(comment_dict)2. 第二種(父子關(guān)系)
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 = {}######### 二級(jí)評(píng)論的處理 ############ # 1.循環(huán)初始數(shù)據(jù) 添加children 構(gòu)造初始化字典格式 for item in comment_list:item["children"] = []comment_dict[item["id"]] = item# 2. 循環(huán)二級(jí)評(píng)論 用replay_id,去初始化的字典里面,找到對(duì)應(yīng)的父級(jí),添加到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())總結(jié)
以上是生活随笔為你收集整理的数据构造---家族树的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 51单片机对GPS卫星信号的解码并通过L
- 下一篇: Crystal Reports - Ad