如何解决如何在打印Networkx图的边属性时对边的顺序进行排序
我正在尝试以排序方式打印Networkx图的边缘属性。
例如,
print(sorted(G.edges(data=True))
将显示有序的字典
[(3,7,OrderedDict([('w1',9.62),('w2',37.2)])),(3,8,9.42),49.6)]))]
同样,我要打印一个属性(仅w1
或w2
,data = True都打印)作为排序输出。
例如,当我尝试
print(sorted(nx.get_edge_attributes(G,'w1').values()))
不起作用。
关于如何显示单个属性的排序输出的任何建议将非常有帮助。
解决方法
nx.get_edge_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,('w1',9.42)),(3,9.62))]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。