数据构造---家族树
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())
数据构造---家族树相关推荐
- 家族关系查询系统程序设计算法思路_数据结构设计(家族关系查询系统)汇编.doc...
1 课程设计介绍 1.1课程设计项目简介 家谱是一种以表谱形式,记载一个以血缘关系为主体的家族世系繁衍和重要人物事迹的特殊图书载体.家谱是中国特有的文化遗产,是中华民族的三大文献之一,属珍贵的人文资料 ...
- 面试题:mysql 表删除一半数据,B+树索引文件会不会变小???
今日寄语:努力的阶段,往往是最不养生的阶段! 一张千万级的数据表,删除了一半的数据,你觉得B+树索引文件会不会变小? (答案在文章中!!) 我们先来做个实验,看看表的大小是如何变化的?? 做个实验,让 ...
- 【译】数据结构中关于树的一切(java版)
你每天都那么努力,忍受了那么多的寂寞和痛苦.可我也没见你有多优秀. https://user-gold-cdn.xitu.io/2018/4/17/162d1b4c1dd95fa3?w=1080&am ...
- linux进程家族树,Linux内核 | 进程管理
作者:世至其美 博客地址:hqber.com 转载须注明以上信息, 更多文章,请访问个人博客:hqber.com 1. 进程和线程 1.1 定义 进程是处于运行状态的程序和相关资源的总称,是资源分配的 ...
- 基于python win32com的visio文件基础操作语句简介及案例展示(家族树自动创建)
1 写在前面 最近需要给老师们做家族树,向visio模板中套excel数据,但是在手动套模板的过程中发现间距的控制是一个较为繁琐的事情,于是萌生了用python完成这一过程的想法. 在探索的过程中经验 ...
- Jmeter做数据构造步骤详解
Jmeter做数据构造步骤详解 引入 什么是数据构造 数据构造的方式 数据构造的意义 一.JDBC请求执行SQL语句构造数据 01 环境准备:添加Jmeter插件 02 使用步骤 二.HTTP请求调用 ...
- 软件测试实验--数据工厂DataFactory+MySQL数据构造
数据工厂---DataFactory+MySQL数据构造 显示成功,但测出来的是啥...
- 大数据时代 树大数据意识
大数据时代 树大数据意识 一,大数据及其特点 1.什么是大数据? 美国首屈一指的咨询公司麦肯锡给大数据的定义是:大小超出常规的数据库工具获取.存储.管理和分析能力的数据集.全球最大的电子商务公司亚马逊 ...
- 二叉搜索树的删除操作可以交换吗_一文看懂数据结构中的树
通常在开始学编程的时候,你会接触一些常用数据结构.到最后一般会学到哈希表.对于修读计算机科学学位的朋友,你通常要上专门的数据结构课,从了解有关链表.队列和栈的各种知识.这些统称为线性数据结构,因为依逻 ...
最新文章
- android String.format
- 【Qt】使用QCamera获取摄像头,并使用图像视图框架QGraphics*来显示
- [译]通过使用Chrome的开发者工具来学习JavaScript
- 如何解决ajax重复提交的问题
- 【helloworld】-微信小程序开发教程-入门篇【1】
- STM32 基础系列教程 2 - GPIO 按键输入
- linux下zookeeper启动命令,For Linux Zookeeper客户端命令行操作指令
- VMware vSphere 5.1 群集深入解析(二十八)- vSphere配置
- 自定义网页头部前面小图标
- java countdowntimer_(六)Android中使用CountDownTimer实现倒计时功能
- java安全证书配置
- 写点什么好呢2? 钱、事业、婚姻、人生意义
- 大屏幕显示屏 html,在大屏幕上显示墙的三种解决方案
- 反向寻车管理系统服务器,一种反向寻车系统及寻车方法
- 右键文件或文件夹或空白处弹出菜单包含自己软件快捷方式
- nginx根据项目名实现内网地址转发
- HMM-前向后向算法
- openCV实现图像的空间域增强
- KeyDown,KeyPress 和KeyUp 之我谈
- vanilla_包装Vanilla JavaScript软件包以在React中使用
热门文章
- 用API函数使程序标题栏闪烁
- 【数据可视化应用】绘制森林图(附Python和R语言代码)
- 计算机图形学——二维卡通人物交互设计
- 为什么我们需要TOGAF企业架构?——上海信息化培训中心
- 齐岳2-苯基吡啶(C-N)|2-phenylpyridine|cas1008-89-5
- 【浏览器】浏览器缓存
- 思科access-list 1 permit 1.1.1.0 0.0.254.0 //允许第三位为奇数的路由
- 省市区sql语句之:(三)区1
- 寻根究底,探讨 chi -square特征词选择方法后面的数学支持
- ssm + redis