Frage

Ich möchte Knoten unterschiedlicher Kanten in dem Diagramm vergleichen. Wie kann ich die Knoten (n1 und n2) von der Kante (n1, n2) bekommen?

War es hilfreich?

Lösung

Eine Kante in NetworkX wird durch seine Knoten definiert ist, so bin ich nicht wirklich sicher, was Sie fragen hier. Eine spezifische Kante in dem Graphen ist nur ein Tupel von Knoten, mit einer optionalen Gewichtungs.

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

gibt

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

Wie Sie sehen können, ist die Liste der Kanten sieht ausdrücklich die Knoten jeder Kante.

Update: Ist das tun, was Sie wollen

#!/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]
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top