Get all edges linked to a given node in a networkx graph

Deadly 提交于 2020-05-11 03:48:26

问题


Just wondering if there is convenient networkx function that returns a list of edges connected to a given node (or nodes) (e.g. my_node_name) in a graph (e.g. G).

I can do it this way:

edlist=[]
for ed in G.edges():
     if 'my_node_name' in ed:
            edlist.append(ed)

but expect there might be a better way?


回答1:


If the graph is undirected, you can use

G.edges(node)

In networkx 2.x this is an EdgeDataView object. In networkx 1.x this is a list - if you want a generator in 1.x rather than getting the whole list, G.edges_iter(node) works (this no longer exists in 2.x).

If the graph is directed the command above will not give the in-edges. Use

G.in_edges(node)
G.out_edges(node) 

These are views in 2.x. In 1.x these are lists and there are generator options: G.in_edges_iter(node) and G.out_edges_iter(node)




回答2:


You can use the method edges

G.edges(['my_node_name'])

or the function edges

networkx.edges(G, ['my_node_name'])


来源:https://stackoverflow.com/questions/33078907/get-all-edges-linked-to-a-given-node-in-a-networkx-graph

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!