多重有向图边的属性

2 投票
1 回答
700 浏览
提问于 2025-04-17 23:57

请问在networkx中,对于一个多重有向图(multiDiGraph),如果边是用列表中的元组表示的,我该如何访问或打印出属性字典中的元素,比如我怎么打印出长度、类型或车道等属性呢?

i = [(1001, 7005,{'length':0.35, 'modes':'cw', 'type':'99', 'lanes':9})]

下面的打印语句在有向图(Digraph)中可以正常工作,但在多重有向图(MultiDiGraph)中会出错。

print i, X[i[0]][i[1]]['length']

谢谢!

1 个回答

4

如果我理解你的意思,那么你可以使用 get_edge_data 这个方法:

In [35]:

import networkx as nx
G = nx.MultiDiGraph()
G.add_edge(1001, 7005, length=0.35, modes='cw', type='99', lanes=9)
G.edges(data=True)
Out[35]:
[(1001, 7005, {'lanes': 9, 'length': 0.35, 'modes': 'cw', 'type': '99'})]

In [34]:

G.get_edge_data(1001, 7005)[0]['length']
Out[34]:
0.35

撰写回答