You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在python-igraph中如何获取路径中各边的方向模式?

Python-igraph 有向图中最短路径边方向的简洁获取方法

首先构建示例有向图并获取最短路径:

import igraph as ig

g = ig.Graph(directed=True)
g.add_vertices(range(4))
g.add_edges([(0,1),(0,2),(1,3)])

# 获取所有最短路径
paths = g.get_all_shortest_paths(3, 2, mode='all')

要简洁地获取每条路径中边的方向模式('in'或'out'),可以用嵌套列表推导式实现,无需手动遍历:

# 生成方向模式列表
direction_patterns = [
    ['out' if g.has_edge(v, u) else 'in' for u, v in zip(path, path[1:])]
    for path in paths
]

print(direction_patterns)  # 输出: [['out', 'out', 'in']]

逻辑说明

  • 对每条路径,用zip(path, path[1:])取出连续的顶点对(u, v),代表路径中从u到v的一步
  • 判断图中是否存在v → u的边:如果存在,说明路径中的这一步是逆着图中原有边的方向,标记为'out';如果不存在(即存在u → v的边),说明是顺着原有边的方向,标记为'in'

内容的提问来源于stack exchange,提问作者carltron4000

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 22:35:41