返回顶部
首页 > 资讯 > 后端开发 > Python >python字典生成树状图的实例
  • 575
分享到

python字典生成树状图的实例

2024-04-02 19:04:59 575人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录python字典生成树状图Python生成树结构python字典生成树状图 from graphviz import Digraph # 获取所有节点中最多子节点的叶节点 de

python字典生成树状图

from graphviz import Digraph

# 获取所有节点中最多子节点的叶节点
def getMaxLeafs(myTree):
    numLeaf = len(myTree.keys())
    for key, value in myTree.items():
        if isinstance(value, dict):
            sum_numLeaf = getMaxLeafs(value)
            if sum_numLeaf > numLeaf:
                numLeaf = sum_numLeaf
    return numLeaf

def plot_model(tree, name):
    g = Digraph("G", filename=name, fORMat='png', strict=False)
    first_label = list(tree.keys())[0]
    g.node("0", first_label)
    _sub_plot(g, tree, "0")
    leafs = str(getMaxLeafs(tree) // 10)
    g.attr(rankdir='LR', ranksep=leafs)
    g.view()

root = "0"


def _sub_plot(g, tree, inc):
    global root

    first_label = list(tree.keys())[0]
    ts = tree[first_label]
    for i in ts.keys():
        if isinstance(tree[first_label][i], dict):
            root = str(int(root) + 1)
            g.node(root, list(tree[first_label][i].keys())[0])
            g.edge(inc, root, str(i))
            _sub_plot(g, tree[first_label][i], root)
        else:
            root = str(int(root) + 1)
            g.node(root, tree[first_label][i])
            g.edge(inc, root, str(i))

tree = {
        "tearRate": {
            "reduced": "no lenses",
            "normal": {
                "astigmatic": {
                    "yes": {
                        "prescript": {
                            "myope": "hard",
                            "hyper": {
                                "age": {
                                    "young": "hard",
                                    "presbyopic": "no lenses",
                                    "pre": "no lenses"
                                }
                            }
                        }
                    },
                    "no": {
                        "age": {
                            "young": "soft",
                            "presbyopic": {
                                "prescript": {
                                    "myope": "no lenses",
                                    "hyper": "soft"
                                }
                            },
                            "pre": "soft"
                        }
                    }
                }
            }
        }
    }
plot_model(tree, "tree.gv")

效果如下:

python生成树结构

# 生成树结构
def get_trees(data,
              key_column='elementId',
              parent_column='parentId',
              child_column='children'):
    """
    :param data: 数据列表
    :param key_column: 主键字段,默认id
    :param parent_column: 父ID字段名,父ID默认从0开始
    :param child_column: 子列表字典名称
    :return: 树结构
    """
    data_dic = {}
    for d in data:
        data_dic[d.get(key_column)] = d  # 以自己的权限主键为键,以新构建的字典为值,构造新的字典
 
    data_tree_list = []  # 整个数据大列表
    for d_id, d_dic in data_dic.items():
        pid = d_dic.get(parent_column)  # 取每一个字典中的父id
        if not pid:  # 父id=0,就直接加入数据大列表
            data_tree_list.append(d_dic)
        else:  # 父id>0 就加入父id队对应的那个的节点列表
            try:  # 判断异常代表有子节点,增加子节点列表=[]
                data_dic[pid][child_column].append(d_dic)
            except KeyError:
                data_dic[pid][child_column] = []
                data_dic[pid][child_column].append(d_dic)
    return data_tree_list
 
def recursion(data, l=None):
    if l is None:
        l = []
    for i in data:
        if 'children' in i:
            children=i.pop('children')
            l.append(i)
            recursion(children,l)
        else:
            l.append(i)
    return l

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: python字典生成树状图的实例

本文链接: https://lsjlt.com/news/119408.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python字典生成树状图的实例
    目录python字典生成树状图python生成树结构python字典生成树状图 from graphviz import Digraph # 获取所有节点中最多子节点的叶节点 de...
    99+
    2024-04-02
  • 怎么使用python字典生成树状图
    这篇文章主要介绍了怎么使用python字典生成树状图的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用python字典生成树状图文章都会有所收获,下面我们一起来看看吧。python字典生成树状图from&n...
    99+
    2023-07-02
  • python zip 生成字典
    #zip的使用 a=(1,2,3) b=(4,5,6) c=zip(a,b) print c  [(1, 4), (2, 5), (3, 6)] #逆向 print zip(*c) [(1, 2, 3), (4, 5, 6)] #字典...
    99+
    2023-01-31
    字典 python zip
  • 使用ECharts和Python接口生成树状图的方法
    使用ECharts和Python接口生成树状图的方法概要:近年来,数据可视化在各个领域中发挥着越来越重要的作用。ECharts是一款强大的数据可视化库,而Python是一种广泛使用的编程语言。将两者结合起来,我们可以实现简单、灵活且美观的树...
    99+
    2023-12-18
    Python echarts 树状图方法
  • python如何实现字典生成式
    这篇文章主要介绍了python如何实现字典生成式,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。字典生成式除了列表解析式和集合推导式外,解析式特征还可用于字典数据类型的创建。d...
    99+
    2023-06-27
  • python如何实现默认字典的简单树状表达
    这篇文章主要介绍python如何实现默认字典的简单树状表达,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!默认字典的简单树状表达>>> import&nbs...
    99+
    2024-04-02
  • Mysql生成数据字典的原理与实例
    目录生成原理生成实例COLUMNS表字段拓展:附:1分钟导出MySQL的数据字典总结 生成原理 在MySQL中,有个自带的数据库,名为information_schema。...
    99+
    2024-04-02
  • python字典嵌套字典实例
    日志文件样式:2018-06-27 09:07:37 Postman[INFO]: [1530061656f8lda-7M5E9] from: <lilh@test.com><router>, to: <xie...
    99+
    2023-01-31
    字典 嵌套 实例
  • python如何生成密码字典
    目录一、密码字典二、字典生成1.生成6位数小写字母+数字密码字典2.选择模式运行一、密码字典 所谓密码字典,主要是配合解密使用,一般情况用来暴力破解密码,是由指定字符排列组合组成的文...
    99+
    2024-04-02
  • python怎么生成密码字典
    本篇内容主要讲解“python怎么生成密码字典”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python怎么生成密码字典”吧!一、密码字典所谓密码字典,主要是配合解密使用,一般情况用来暴力破解密...
    99+
    2023-06-29
  • python生成密码字典详解
    代码和代码运行的结果: 代码: import itertools as its words="rot123" a=its.product(words,repeat=4) name...
    99+
    2024-04-02
  • 详解Java中字典树(Trie树)的图解与实现
    目录简介工作过程数据结构初始化构建字典树应用匹配有效单词关键词提示总结简介 Trie又称为前缀树或字典树,是一种有序树,它是一种专门用来处理串匹配的数据结构,用来解决一组字符中快速查...
    99+
    2024-04-02
  • windowsCMD生成文件夹树状图tree命令的使用
    如: 步骤: 在当前路径运行CMD: 输入tree: 当然也可以用绝对路径, 以tree \起头:太多了就不贴上来了。 也可以用相对路径: tree .\test_pipreq...
    99+
    2024-04-02
  • Python生成元组和字典的方法
    目录1.生成元组1.1使用()生成元组1.2使用tuple函数生成元组1.3使用divmod函数生成元组2.生成字典2.1使用{}生成字典2.2使用dict函数生成字典1.生成元组 ...
    99+
    2023-02-27
    Python生成元组 Python生成字典
  • 用vbs实现字典生成器
    这篇文章主要讲解了“用vbs实现字典生成器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“用vbs实现字典生成器”吧!使用方法'use:cscript this.vbs&nb...
    99+
    2023-06-08
  • Python实现简单字典树的方法
    本文实例讲述了Python实现简单字典树的方法。分享给大家供大家参考,具体如下: #coding=utf8 """代码实现了最简单的字典树,只支持由小写字母组成的字符串。 在此代码基础上扩展一下,就可以...
    99+
    2022-06-04
    字典 简单 方法
  • Python如何生成元组和字典
    本文小编为大家详细介绍“Python如何生成元组和字典”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python如何生成元组和字典”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.生成元组元组是元素按顺序组合后...
    99+
    2023-07-05
  • Python生成字符视频的实现示例
    一、前言 在之前也写过生成字符视频的文章,但是使用的是命令行窗口输出,效果不是很好,而且存在卡顿的情况。于是我打算直接生成一个mp4的字符视频。大致思路和之前一样:Python20行代码实现视频字符化。 下面来看一个...
    99+
    2022-06-02
    Python生成字符视频 Python 字符视频
  • Python如何实现无限级分类树状结构生成算法
    本篇文章给大家分享的是有关Python如何实现无限级分类树状结构生成算法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。无限级分类树状结构的应用...
    99+
    2024-04-02
  • Python利用字典树实现猎词游戏
    目录解决策略什么是 Trie?创建 Trie 字典树单词测试总结猎词(word hunt)是一类很常见的游戏,给你一张字母组成的表,然后让你在这些字母中尽可能多的去寻找单词。这类游戏...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作