开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (2)
标签 (1)
master
develop
1.0.0
master
分支 (2)
标签 (1)
master
develop
1.0.0
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (2)
标签 (1)
master
develop
1.0.0
array.py 2.95 KB
一键复制 编辑 原始数据 按行查看 历史
zero 提交于 2024年09月20日 11:21 +08:00 . update: 调整描述
# +----------------------------------------------------------------------
# | WaitAdmin(fastapi)快速开发后台管理系统
# +----------------------------------------------------------------------
# | 欢迎阅读学习程序代码,建议反馈是我们前进的动力
# | 程序完全开源可支持商用,允许去除界面版权信息
# | gitee: https://gitee.com/wafts/waitadmin-python
# | github: https://github.com/topwait/waitadmin-python
# | 官方网站: https://www.waitadmin.cn
# | WaitAdmin团队版权所有并拥有最终解释权
# +----------------------------------------------------------------------
# | Author: WaitAdmin Team <2474369941@qq.com>
# +----------------------------------------------------------------------
from typing import TypeVar, Union, List, Dict, Any
T = TypeVar("T")
class ArrayUtil:
""" 数组工具 """
@staticmethod
def list_to_tree(arr: List[Dict[str, Any]], id_: str, pid: str, child: str) -> Union[T, List[Dict[str, Any]]]:
"""
将包含字典的列表转换为树形结构。
Args:
arr (List[Dict[str, Any]]): 包含字典的列表,每个字典表示树中的一个节点。
id_ (str): 字典中作为主键的字段名。
pid (str): 字典中表示父节点ID的字段名。
child (str): 在树形结构中,用于存储子节点的字段名。
Returns:
Union[List[Dict[str, Any]], Dict[str, Any]]: 转换后的树形结构,可以是列表(根节点列表)或单个字典(单根树)。
Author:
zero
"""
# 使用id_字段的值作为键,将arr中的字典映射为字典。
id_dict_map = {item[id_]: item for item in arr}
# 用于存放顶级节点(即没有父节点的节点)的列表。
top_level_nodes = []
# 遍历arr中的每个字典
for item in arr:
# 获取父节点ID
parent_id = item.get(pid)
# 尝试从映射中获取父节点
p_node = id_dict_map.get(parent_id)
# 如果找到父节点,则将当前节点添加到父节点的子节点列表中
if p_node:
# 确保child字段在p_node中存在
if child in p_node:
p_node[child].append(item)
else:
p_node[child] = [item]
# 如果没有父节点(即顶级节点),则将其添加到top_level_nodes列表中
else:
top_level_nodes.append(item)
# 如果只有一个顶级节点,并且该节点有child字段,则返回这个节点(表示单根树)
if len(top_level_nodes) == 1 and child in top_level_nodes[0]:
if not top_level_nodes[0]:
return []
return top_level_nodes[0] if isinstance(top_level_nodes[0], list) else [top_level_nodes[0]]
# 否则返回顶级节点列表(表示多根树)
else:
return top_level_nodes
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

🔥🔥🔥WaitAdmin(python)是一款基于Fastapi+Vue3开发的一套快速开发通用管理后台,集成Vue常用组件,RBAC权限管理, 让开发变的简单,界面简洁清爽,后台支持多种菜单结构可满足不同人群的需求,非常适合二开做项目。
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/charmer21/waitadmin-python.git
git@gitee.com:charmer21/waitadmin-python.git
charmer21
waitadmin-python
WaitAdmin开源后台系统(Python版)
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /