Question

Utilisation de la bibliothèque NetworkX de Python, j'ai créé un graphe non orienté pour représenter un réseau de relations entre les différentes personnes. Un extrait de mon code est ci-dessous:

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

D'après ce que je comprends, chaque nœud est essentiellement un dictionnaire. Le problème que cela pose à moi est que je veux effectuer un autre type d'algorithme Random Walk. Maintenant, avant de sauter sur moi et me dire d'utiliser l'une des fonctions standard de la bibliothèque NetworkX, je tiens à souligner qu'il est un algorithme personnalisé. Supposons que je lance la fonction createGraph, et l'objet G est retourné et emmagasinés dans un autre objet (appelons-X). Je veux commencer à un nœud appelé « Bob ». Bob est connecté à Alice et Joe. Maintenant, je veux réassigner Y pour pointer vers Alice ou Bob au hasard (avec les données que je traite, un noeud donné pourrait avoir des centaines d'arêtes le laissant). Comment puis-je prendre? En outre, comment puis-je traiter avec des entrées unicode dans le dict d'un noeud donné (comme la façon dont Alice et Joe sont énumérés ci-dessous?)

X = creategraph("filename")
Y=X['Bob']
print Y
>> {u'Alice': {}, u'Joe': {}}
Était-ce utile?

La solution

Le fonction Module aléatoire pourrait aider dans le processus de sélection. Vous ne vraiment pas à vous soucier de la distinction entre unicode et chaîne sauf si vous essayez de les écrire quelque part que parfois des caractères unicode ne sont pas traduisibles dans le jeu de caractères ASCII par défaut Python à.

La façon dont vous utiliseriez random.choice serait quelque chose le long des lignes de:

Y = Y[random.choice(Y.keys())]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top