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())

数据构造---家族树相关推荐

  1. 家族关系查询系统程序设计算法思路_数据结构设计(家族关系查询系统)汇编.doc...

    1 课程设计介绍 1.1课程设计项目简介 家谱是一种以表谱形式,记载一个以血缘关系为主体的家族世系繁衍和重要人物事迹的特殊图书载体.家谱是中国特有的文化遗产,是中华民族的三大文献之一,属珍贵的人文资料 ...

  2. 面试题:mysql 表删除一半数据,B+树索引文件会不会变小???

    今日寄语:努力的阶段,往往是最不养生的阶段! 一张千万级的数据表,删除了一半的数据,你觉得B+树索引文件会不会变小? (答案在文章中!!) 我们先来做个实验,看看表的大小是如何变化的?? 做个实验,让 ...

  3. 【译】数据结构中关于树的一切(java版)

    你每天都那么努力,忍受了那么多的寂寞和痛苦.可我也没见你有多优秀. https://user-gold-cdn.xitu.io/2018/4/17/162d1b4c1dd95fa3?w=1080&am ...

  4. linux进程家族树,Linux内核 | 进程管理

    作者:世至其美 博客地址:hqber.com 转载须注明以上信息, 更多文章,请访问个人博客:hqber.com 1. 进程和线程 1.1 定义 进程是处于运行状态的程序和相关资源的总称,是资源分配的 ...

  5. 基于python win32com的visio文件基础操作语句简介及案例展示(家族树自动创建)

    1 写在前面 最近需要给老师们做家族树,向visio模板中套excel数据,但是在手动套模板的过程中发现间距的控制是一个较为繁琐的事情,于是萌生了用python完成这一过程的想法. 在探索的过程中经验 ...

  6. Jmeter做数据构造步骤详解

    Jmeter做数据构造步骤详解 引入 什么是数据构造 数据构造的方式 数据构造的意义 一.JDBC请求执行SQL语句构造数据 01 环境准备:添加Jmeter插件 02 使用步骤 二.HTTP请求调用 ...

  7. 软件测试实验--数据工厂DataFactory+MySQL数据构造

    数据工厂---DataFactory+MySQL数据构造 显示成功,但测出来的是啥...

  8. 大数据时代 树大数据意识

    大数据时代 树大数据意识 一,大数据及其特点 1.什么是大数据? 美国首屈一指的咨询公司麦肯锡给大数据的定义是:大小超出常规的数据库工具获取.存储.管理和分析能力的数据集.全球最大的电子商务公司亚马逊 ...

  9. 二叉搜索树的删除操作可以交换吗_一文看懂数据结构中的树

    通常在开始学编程的时候,你会接触一些常用数据结构.到最后一般会学到哈希表.对于修读计算机科学学位的朋友,你通常要上专门的数据结构课,从了解有关链表.队列和栈的各种知识.这些统称为线性数据结构,因为依逻 ...

最新文章

  1. rust 官服指令_RUST 命令大全(包括服务器指令)
  2. centos出现磁盘坏掉,怎么修复和检测。
  3. HashMap实现中文分词器
  4. 视觉硬件 - 相机 镜头 选型
  5. 每天一个Linux命令之ps-查看系统进程信息
  6. redis的redisvCommand的%b
  7. oracle查看数据库是否恢复成功_记一次解决docker下oracle数据库故障事例
  8. 用C语言实现简单的停车场管理
  9. USACO_1_2_Dual Palindromes
  10. vb.net操作excel文件
  11. 微信公众号模板消息接口
  12. C++公历农历转换2020-2080年/除夕修正
  13. 郑州大学python程序设计试题及答案_Python程序设计(胡新明)-中国大学mooc-试题题目及答案...
  14. 分类器交叉验证java_使用交叉验证和F1分数选择SVM参数
  15. DataFrame上下或左右合并 pd.concat
  16. div+css静态网页设计游戏网站设计——仿君海游戏官网(13页) HTML+CSS大作业_ 手游网页制作作业_网游网页设计...
  17. 用 Uno Platform 构建一个 Kanban-style Todo App
  18. 《如何高效学习》总结
  19. 山东科技大学计算机调剂难吗,山东科技大学 材料专业 调剂 求老师带走 国家线总分单科不都受限 - 考研 - 小木虫 - 学术 科研 互动社区...
  20. 学好MySQL增删查改,争取不做CURD程序员【上篇】

热门文章

  1. 计算字符串中子串出现的次数
  2. ElasticSearch 中文分词器ik的安装、测试、使用、自定义词库、热更新词库
  3. UDP服务器客户端编程流程
  4. 宋红康jvm ppt(JVM介绍)
  5. spring IOC DI AOP
  6. 安卓机更新系统会卡吗_安卓手机系统“越更新越卡”?或许和这4个原因有关,早看早知道...
  7. 阿姨说女婿只要程序员,IT男在婚恋市场真吃香吗?妹子有话要说
  8. Linux Ubuntu 命令行文件系统的创建,挂载,卸载
  9. 7-14 然后是几点(C语言)
  10. python学习笔记3(字符串)