Networkx节点遍历

时间:2009-09-24 03:40:25

标签: python graph nodes networkx

使用Python的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(使用我正在处理的数据,给定节点可能有数百个边缘离开它)。我该怎么做呢?另外,我如何处理给定节点的dict中的unicode条目(如下面列出Alice和Joe的方式?)

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

1 个答案:

答案 0 :(得分:4)

choice模块中的random功能可以帮助您进行选择。你真的不需要担心unicode和string之间的区别,除非你试图将它们写出来,因为有时unicode字符不能转换成Python默认的ASCII字符集。

你使用random.choice的方式将是:

Y = Y[random.choice(Y.keys())]
相关问题