优雅地访问networkx中的边缘属性

Cal*_*laf 6 python networkx

确实确实需要访问下面的笨拙的第三种形式的networkx中的边缘属性,并且不需要更精简的前两种形式的变化吗?

import networkx as nx

G = nx.Graph()
G.add_edge(1, 2, weight=4.7 )
G.add_edge(3, 4, weight=5.8 )

# for edge in G.edges():
#     print edge['weight']
# 
# for edge in G.edges():
#     print G[edge]['weight']

for edge in G.edges():
    print G.edge[edge[0]][edge[1]]['weight']
Run Code Online (Sandbox Code Playgroud)

unu*_*tbu 6

用途data=True

import networkx as nx

G = nx.Graph()
G.add_edge(1, 2, weight=4.7)
G.add_edge(3, 4, weight=5.8)

for node1, node2, data in G.edges(data=True):
    print(data['weight'])
Run Code Online (Sandbox Code Playgroud)

版画

4.7
5.8
Run Code Online (Sandbox Code Playgroud)