Je me demande simplement s'il existe une fonction networkx pratique qui renvoie une liste d'arêtes connectées à un nœud (ou des nœuds) donné (par exemple my_node_name
) dans un graphique (par exemple G
).
Je peux le faire de cette façon:
edlist=[]
for ed in G.edges():
if 'my_node_name' in ed:
edlist.append(ed)
mais attendez-vous à ce qu'il y ait une meilleure façon?
Si le graphique n'est pas orienté, vous pouvez utiliser
G.edges(node)
Dans networkx 2.x c'est un objet EdgeDataView
. Dans networkx 1.x ceci est une liste - si vous voulez un générateur en 1.x plutôt que d'obtenir la liste entière, G.edges_iter(node)
fonctionne (cela n'existe plus dans 2.x ).
Si le graphique est dirigé, la commande ci-dessus ne donnera pas les bords entrants. Utilisation
G.in_edges(node)
G.out_edges(node)
Ce sont des vues en 2.x. Dans 1.x ce sont des listes et il y a des options de générateur: G.in_edges_iter(node)
et G.out_edges_iter(node)
Vous pouvez utiliser la méthode edges
G.edges(['my_node_name'])
ou la fonction edges
networkx.edges(G, ['my_node_name'])