Получить все ребра, связанные с данным узлом в графике networkx

просто интересно, есть ли удобная функция networkx, которая возвращает список ребер, подключенных к данному узлу (или узлам) (например,my_node_name) в графе (например,G).

Я могу сделать это таким образом:

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

но ожидать, что там может быть лучший способ?

2 ответов


если график неориентирован, вы можете использовать

G.edges(node)

если вы хотите использовать генератор, а не получать весь список, G.edges_iter(node) строительство. (редактировать: в networkx 2.0 G.edges_iter(node) и G.edges(node) теперь EdgeDataView объект)

если график направлен, команда выше не даст ребер. Использовать

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

они также имеют параметры генератора:G.in_edges_iter(node) и G.out_edges_iter(node) (редактировать аналогично в 2.0 их больше не существует и in_edges и out_edges вид)


вы можете использовать метод edges

G.edges(['my_node_name'])

или edges

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