使用属性获取边缘
Get out edges with properties
我有一个带有一些节点和一些边的有向图 G:
G.add_edges_from([ ...
('X', 'Y', {'property': 85}), ...
('X', 'T', {'property': 104}), ...
...])
然而,当我运行G.out_edges('X')
时,它returnsOutEdgeDataView([('X', 'Y'), ('X', 'T')])
。相反,我想获得一个带有边的元组列表(带有 属性),如下所示:
[('X', 'Y', {'property': 85}), ('X', 'T', {'property': 104})]
我应该如何获得这些结果?
谢谢!
您可以使用 networkx.DiGraph.out_edges(data=True).
import networkx as nx
G = nx.DiGraph()
G.add_edges_from([
('X', 'Y', {'property': 85}),
('X', 'T', {'property': 104}),
('Z', 'X', {'property': 104}),
])
print(G.out_edges('X', data=True))
[('X', 'Y', {'property': 85}), ('X', 'T', {'property': 104})]
我发现没有比像这样简单地写一个列表理解更好的答案了:
def get_out_edges(node, all_edges):
return [e for e in all_edges if node == e[0]]
我有一个带有一些节点和一些边的有向图 G:
G.add_edges_from([ ...
('X', 'Y', {'property': 85}), ...
('X', 'T', {'property': 104}), ...
...])
然而,当我运行G.out_edges('X')
时,它returnsOutEdgeDataView([('X', 'Y'), ('X', 'T')])
。相反,我想获得一个带有边的元组列表(带有 属性),如下所示:
[('X', 'Y', {'property': 85}), ('X', 'T', {'property': 104})]
我应该如何获得这些结果? 谢谢!
您可以使用 networkx.DiGraph.out_edges(data=True).
import networkx as nx
G = nx.DiGraph()
G.add_edges_from([
('X', 'Y', {'property': 85}),
('X', 'T', {'property': 104}),
('Z', 'X', {'property': 104}),
])
print(G.out_edges('X', data=True))
[('X', 'Y', {'property': 85}), ('X', 'T', {'property': 104})]
我发现没有比像这样简单地写一个列表理解更好的答案了:
def get_out_edges(node, all_edges):
return [e for e in all_edges if node == e[0]]