Python字典如何构建无限级树结构?

python字典如何构建无限级树结构?

Python字典构建无限级树结构:高效数据组织方法

在实际应用中,将扁平数据转化为树形结构能够提升数据可读性和处理效率。本文将详细阐述如何利用Python代码,将包含父节点ID的字典列表转换为无限级树形结构,并用children字段表示子节点。

示例数据:

rows = [    {'pid': 0, 'id': 1, 'name': 'aaa'},    {'pid': 0, 'id': 2, 'name': 'bbb'},    {'pid': 0, 'id': 3, 'name': 'ccc'},    {'pid': 1, 'id': 4, 'name': 'ddd'},    {'pid': 4, 'id': 5, 'name': 'eee'},    {'pid': 5, 'id': 6, 'name': 'fff'},]

通过递归函数实现数据转换:

立即学习“Python免费学习笔记(深入)”;

def build_tree(data, parent_id=None):    tree = []    for item in data:        if item['pid'] == parent_id:            node = {'id': item['id'], 'name': item['name']}            children = build_tree(data, item['id'])            if children:                node['children'] = children            tree.append(node)    return tree

build_tree函数接收原始数据列表data和父节点ID parent_id (默认为None, 表示根节点) 作为参数。函数遍历data,查找pidparent_id匹配的节点,创建包含idname信息的节点字典。然后递归调用build_tree函数构建子节点,并将子节点添加到children字段。最后,将节点添加到树列表并返回。

另一个示例:

data = [    {'id': 1, 'name': 'A', 'parent_id': None},    {'id': 2, 'name': 'B', 'parent_id': 1},    {'id': 3, 'name': 'C', 'parent_id': 1},    {'id': 4, 'name': 'D', 'parent_id': 2},    {'id': 5, 'name': 'E', 'parent_id': 3},    {'id': 6, 'name': 'F', 'parent_id': 3},    {'id': 7, 'name': 'G', 'parent_id': 4},    {'id': 8, 'name': 'H', 'parent_id': 5},]tree = build_tree(data)print(tree)

这段代码将输出构建好的树形结构。 请注意,此代码未包含循环检测机制,处理存在循环引用的数据时可能会导致无限递归。实际应用中,需添加循环检测和处理来避免此问题。

以上就是Python字典如何构建无限级树结构?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1358954.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月13日 22:18:28
下一篇 2025年12月13日 22:18:43

相关推荐

发表回复

登录后才能评论
关注微信