Frage

Mit Python NetworkX Bibliothek, habe ich eine ungerichtete Graph, der eine Beziehung Netzwerk zwischen verschiedenen Menschen zu vertreten. Ein Ausschnitt aus meinem Code ist unter:

import networkx as nx
def creategraph(filepath):
    G=nx.Graph()
    #All the various nodes and edges are added in this stretch of code.
    return G

Von dem, was ich verstehe, jeder Knoten ist im Grunde ein Wörterbuch. Das Problem, dass ich dies stellt ist, dass ich eine andere Art von Random Walk-Algorithmus ausgeführt werden soll. Nun, bevor Sie auf mich springen und sagen Sie mir, eine der Standardfunktionen der NetworkX Bibliothek zu verwenden, mag ich darauf hinweisen, dass es sich um einen benutzerdefinierten Algorithmus ist. Angenommen, ich laufen die creategraph-Funktion und die G-Objekt zurückgegeben und gespeichert in einem anderen Objekt (nennen wir es X). Ich möchte an einem Knoten genannt beginnen ‚Bob‘. Bob ist mit Alice und Joe verbunden. Nun, ich möchte Y neu zuzuweisen zufällig entweder Alice oder Bob-zu-Punkt (mit der Daten-I mit zu tun habe, einen bestimmten Knoten Hunderte von Kanten haben könnte so dass es). Wie gehe ich um dies zu tun? Auch, wie kann ich mit Unicode-Einträge in einem bestimmten Knoten des dict beschäftigen (wie, wie Alice und Joe sind im Folgenden aufgeführt?)

X = creategraph("filename")
Y=X['Bob']
print Y
>> {u'Alice': {}, u'Joe': {}}
War es hilfreich?

Lösung

Die Wahl Funktion in der zufällig Modul mit dem Auswahlprozess helfen könnte. Sie brauchen nicht wirklich über die Unterscheidung zwischen Unicode und Zeichenfolge zu kümmern, es sei denn, dass Sie sich versuchen, irgendwo zu schreiben, wie es manchmal Unicode-Zeichen sind nicht übersetzbar in den ASCII-Zeichensatz, dass Python standardmäßig.

Die Art und Weisen Sie random.choice verwenden würden, wäre etwas entlang der Linien von seinem

Y = Y[random.choice(Y.keys())]
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top