문제

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

내가 이해 한 바에 따르면 각 노드는 기본적으로 사전입니다. 이것이 나에게 제시하는 문제는 다른 종류의 임의의 산책 알고리즘을 수행하고 싶다는 것입니다. 이제 당신이 저를 뛰어 넘어 네트워크 라이브러리의 표준 기능 중 하나를 사용하라고 말하기 전에, 나는 그것이 사용자 정의 알고리즘임을 지적하고 싶습니다. Creategraph 함수를 실행하고 G 객체가 다른 객체에 반환되고 저장된다고 가정합니다 (x라고 부르십시오). '밥'이라는 노드에서 시작하고 싶습니다. 밥은 앨리스와 조와 연결되어 있습니다. 이제 Alice 또는 Bob을 무작위로 가리키도록 Y를 재 할당하고 싶습니다 (내가 다루고있는 데이터를 사용하면 주어진 노드는 수백 개의 가장자리가 떠날 수 있습니다). 이 작업을 어떻게하려고합니까? 또한, 주어진 노드의 dict에서 유니 코드 항목을 어떻게 처리합니까 (Alice와 Joe가 아래에 나열되는 방법과 같은 방법은 무엇입니까?)

X = creategraph("filename")
Y=X['Bob']
print Y
>> {u'Alice': {}, u'Joe': {}}
도움이 되었습니까?

해결책

그만큼 선택 기능 무작위의 모듈은 선택 과정에 도움이 될 수 있습니다. 유니 코드 문자가 파이썬이 기본적으로 변환 할 수 없기 때문에 어딘가에 글을 쓰려고하지 않는 한 유니 코드와 문자열의 구별에 대해 걱정할 필요는 없습니다.

랜덤을 사용하는 방식은 다음과 같은 선을 따라 무언가가 될 것입니다.

Y = Y[random.choice(Y.keys())]
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top