Вопрос

Используя библиотеку Networkx Python, я создал неориентированный граф для представления сети взаимоотношений между различными людьми.Фрагмент моего кода приведен ниже:

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).Я хочу начать с узла под названием "Боб". Боб связан с Алисой и Джо.Теперь я хочу переназначить Y, чтобы он случайным образом указывал либо на Алису, либо на Боба (с данными, с которыми я имею дело, данный узел может иметь сотни ребер, выходящих из него).Как мне это сделать?Кроме того, как мне работать с записями в юникоде в dict данного узла (например, как Алиса и Джо перечислены ниже?)

X = creategraph("filename")
Y=X['Bob']
print Y
>> {u'Alice': {}, u'Joe': {}}
Это было полезно?

Решение

В выбор функционировать в Случайный модуль мог бы помочь в процессе выбора.Вам действительно не нужно беспокоиться о различии между unicode и string, если только вы не пытаетесь их где-то записать, поскольку иногда символы unicode не переводятся в кодировку ASCII, используемую Python по умолчанию.

То, как вы бы использовали random.choice, было бы чем-то вроде:

Y = Y[random.choice(Y.keys())]
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top