2010-05-01 17 views

Répondre

3

Une arête dans NetworkX est définie par ses nœuds, donc je ne suis pas vraiment sûr de ce que vous demandez ici. Un bord spécifique dans le graphique est juste un tuple de nœuds, avec une pondération optionnelle.

import networkx as nx 
g = nx.Graph() 
g.add_edge(1,2) 
g.add_edge(2,3) 
g.edges() 

donne

[(1, 2), (2, 3)] 

Comme vous pouvez le voir, la liste des arêtes fournit explicitement les noeuds de chaque bord.

Mise à jour: Est-ce que cela fait ce que vous voulez?

#!/usr/bin/python 

import networkx as nx 
import random 

g = nx.Graph() 
g.add_edges_from([(1,2),(2,3),(1,4),(2,5)]) 

random_edge = random.choice(g.edges()) 

print 'Randomly selected edge is:', random_edge 
print 'Nodes are', random_edge[0], 'and', random_edge[1] 
+0

suppose que j'ai une liste de bord, l'un d'entre eux est peut-être bord (2,3) qui est le bord entre le noeud 2 et 3. Je veux que le programme, donnez-moi au hasard un bord de mes données, et aussi donnez-moi ses nœuds, comme ici me donne 2 et 3. – masti

+0

@masti: J'ai mis à jour ma réponse. C'est ce que tu veux dire? –

+0

oui, merci. En fait c'est la première partie de mon programme, je dois travailler avec ces nœuds plus tard. Donc je pensais qu'il pourrait y avoir une fonction à get_nodes, l'inverse de la fonction get_edge ... Mais c'est quand même assez bon! – masti