Pergunta

Usando biblioteca NetworkX de Python, eu criei um grafo não direcionado para representar uma rede de relacionamento entre várias pessoas. Um trecho do meu código está abaixo:

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

Pelo que eu entendo, cada nó é basicamente um dicionário. O problema que isto representa para mim é que eu quero executar um tipo diferente de algoritmo Passeio Aleatório. Agora, antes de saltar sobre mim e me dizem para usar uma das funções padrão da biblioteca NetworkX, eu quero salientar que é um algoritmo personalizado. Suponha que eu executar a função creategraph, eo objeto G é retornada e armazenada em outro objeto (vamos chamá-lo X). Eu quero começar em um nó chamado 'Bob'. Bob está conectado a Alice e Joe. Agora, eu quero transferir Y para apontar para Alice ou Bob aleatoriamente (com os dados que eu estou lidando com um dado nó pode ter centenas de bordas deixando-a). Como faço para ir sobre como fazer isso? Além disso, como faço para lidar com entradas Unicode em dict de um determinado nó (como a forma como Alice e Joe estão listados abaixo?)

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

Solução

O escolha na módulo aleatório poderia ajudar com o processo de seleção. Você realmente não precisa se preocupar com a distinção entre unicode e corda a menos que você está tentando escrevê-los em algum lugar como às vezes caracteres Unicode não são traduzíveis para o charset ASCII que Python padrão é.

A maneira como você usaria random.choice seria algo ao longo das linhas de:

Y = Y[random.choice(Y.keys())]
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top