1 Star 2 Fork 1

MRlin / ks-python-devidng-utility

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
recursion_tree.py 1.37 KB
一键复制 编辑 原始数据 按行查看 历史
MRlin 提交于 2022-09-20 09:54 . 工具类
'''
# Coding:utf-8
# Project: work-platform
# Author: rtf
# Time: 2020-10-27 14:32:58
# FileName: recursion_tree.py
# Software: PyCharm
'''
def get_list(parent_id, datas, parent_column_name="parent_id", next_parent_column_name="id"):
result = list()
for x in datas:
if str(x.get(parent_column_name)) == str(parent_id):
next_pid = x.get(next_parent_column_name)
x['children'] = get_list(next_pid, datas, parent_column_name, next_parent_column_name)
result.append(x)
return result
def get_list_child(parent_id, data, parent_column_name="parent_id", next_parent_column_name="id"):
result = list()
for x in data:
if str(x.get(parent_column_name)) == str(parent_id):
next_pid = x.get(next_parent_column_name)
children = get_list_child(next_pid, data, parent_column_name, next_parent_column_name)
result.append(x)
result.extend(children)
return result
def get_list_parent(children_id, data, parent_column_name="parent_id", next_parent_column_name="id"):
result = list()
for x in data:
if x.get(next_parent_column_name) == children_id:
next_pid = x.get(parent_column_name)
parent = get_list_parent(next_pid, data, parent_column_name, next_parent_column_name)
result.append(x)
result.extend(parent)
return result
Python
1
https://gitee.com/p-kreas/ks-python-devidng-utility.git
git@gitee.com:p-kreas/ks-python-devidng-utility.git
p-kreas
ks-python-devidng-utility
ks-python-devidng-utility
master

搜索帮助