0

使用 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(对于我正在处理的数据,给定节点可能有数百条边离开它)。我该怎么做呢?另外,我如何处理给定节点字典中的 unicode 条目(就​​像下面列出的 Alice 和 Joe 一样?)

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

1 回答 1

4

随机模块中的选择功能可以帮助选择过程。你真的不需要担心 unicode 和 string 之间的区别,除非你试图把它们写出来,因为有时 unicode 字符不能翻译成 Python 默认的 ASCII 字符集。

您使用 random.choice 的方式类似于:

Y = Y[random.choice(Y.keys())]
于 2009-09-24T03:45:57.897 回答