python networkx: simple way to get all simple paths from root to leaf(Python networkx:获取从根到叶的所有简单路径的简单方法)
本文介绍了Python networkx:获取从根到叶的所有简单路径的简单方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我基于有向图构建一棵树。源数据是SQL表中的一系列父子关系。它肯定是一棵树(无论如何我都会验证)。 我想要一组从根到每个叶的简单路径。这些数据是会计"科目表"中的标题,路径类似于"根->资产->流动资产->应收账款->贸易债务人" 其中‘Trade Debtors’是实际账户。
目前,我在构建图表时收集叶ID(实际帐户)。我可以这样做,因为它们是由数据中的某些属性标识的。 然后我重复:
for leaf in detail_or_bank_accts:
paths_to_detail_or_bank_accts.append(list(nx.all_simple_paths(G,0,leaf)))
但对我来说幸运的是,我知道叶节点。有没有更优雅的方式来做这件事?
推荐答案
我假设您有一个DiGraph。找出哪些节点是树叶非常快。
for node in G:
if G.out_degree(node)==0: #it's a leaf
paths.append(nx.shortest_path(G, root, node))
这篇关于Python networkx:获取从根到叶的所有简单路径的简单方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
编程基础网
本文标题为:Python networkx:获取从根到叶的所有简单路径的简单方法
基础教程推荐
猜你喜欢
- 用 Python 编写 Fortran 无格式文件 2022-01-01
- pyserial - 可以从线程 a 写入串行端口,是否阻塞从线程 b 读取? 2022-01-01
- 将 x 轴刻度更改为自定义字符串 2022-01-01
- 尝试制作WhatsApp机器人 2022-01-01
- 在 Celery 工作人员中捕获 Heroku SIGTERM 以优雅地关 2022-01-01
- 使用生成器和迭代器时 Python 多循环失败 2022-01-01
- Discord.py 缺少必需的参数 2022-01-01
- 由Python将MP3转换为MIDI(类型错误:无法加载插件:mtg-Melodia:Melodia) 2022-01-01
- numpy float:比算术运算中内置的慢 10 倍? 2022-01-01
- 与常规 dict 相比,Python manager.dict() 非常慢 2022-01-01
