2009-09-24 173 views
0

使用Python的Networkx库,我创建了一个无向图来表示不同人之间的关系网络。我的代码片段如下:Networkx节点遍历

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 

据我所知,每个节点基本上是一个字典。这给我的问题是我想要执行一种不同的随机游动算法。现在,在您跳过我并告诉我使用Networkx库的标准功能之前,我想指出这是一种自定义算法。假设我运行了creategraph函数,并且G对象被返回并存储在另一个对象中(我们称它为X)。我想从一个叫做'Bob'的节点开始。 Bob连接到Alice和Joe。现在,我想重新指定Y随机指向Alice或Bob(使用我正在处理的数据,给定节点可能会有数百个边留下)。我如何去做这件事?此外,我该如何处理Unicode的条目在给定节点的字典(比如如何爱丽丝和乔在下面列出?)

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

回答

4

random模块中的choice功能可能与选择过程中提供帮助。你并不需要担心unicode和string之间的区别,除非你想把它们写出来,因为有时unicode字符不能转换成Python默认的ASCII字符集。

你会使用random.choice的办法是沿着线的东西:

Y = Y[random.choice(Y.keys())] 
+0

谢谢,本诺。你的回答对解决我的问题非常有帮助。 – GobiasKoffi 2009-09-24 03:50:41