Python 3.x 如何在打印Networkx图形的边属性时对边的顺序进行排序
我正在尝试以排序方式打印Networkx图形的边属性 比如说,Python 3.x 如何在打印Networkx图形的边属性时对边的顺序进行排序,python-3.x,networkx,Python 3.x,Networkx,我正在尝试以排序方式打印Networkx图形的边属性 比如说, print(sorted(G.edges(data=True)) 将显示一个有序的dict [(3, 7, OrderedDict([('w1', 9.62), ('w2', 37.2)])), (3, 8, OrderedDict([('w1', 9.42), ('w2', 49.6)]))] 同样,我想打印单个属性(仅w1或w2,data=True同时打印)作为排序输出 例如,当我尝试 print(sorted(nx.get
print(sorted(G.edges(data=True))
将显示一个有序的dict
[(3, 7, OrderedDict([('w1', 9.62), ('w2', 37.2)])), (3, 8, OrderedDict([('w1', 9.42), ('w2', 49.6)]))]
同样,我想打印单个属性(仅w1
或w2
,data=True同时打印)作为排序输出
例如,当我尝试
print(sorted(nx.get_edge_attributes(G, 'w1').values()))
不起作用
任何关于如何显示单个属性的排序输出的建议都非常有用。
nx.get\u edge\u attributes
将只返回实际属性。可能最简单的方法是只保留G.edges(data=True)
结果中的一个属性:
G = nx.Graph()
G.add_edge(3, 8, w1= 9.62, w2=37.2)
G.add_edge(3, 7, w1= 9.42, w2=49.6)
attr = 'w1'
sorted(((*edge, (attr, d[attr])) for *edge, d in G.edges(data=True)))
# [(3, 7, ('w1', 9.42)), (3, 8, ('w1', 9.62))]