我对Python和NetworkX相当陌生。我需要创建一个类似于Edgelist=[(0,1),(0,3),(1,0),(1,2),(1,4),(2,1),(2,5)]的列表,其中的元素表示边缘(链接)的开始和结束节点,而边缘(链接)又是网络的一部分。
我不希望Python手动设置它们,而是通过从指定的值范围(即(start,end) )中随机选择表示节点I的值(即0, 999)来创建列表中看到的配对。然后,我希望确保每个节点ID至少在一系列(开始值、结束值)中包含一次(这意味着我的所有节点将至少连接到另一个节点)。
我知道我可以使用random.randint(0, 999),但我不知道如何将它“嵌套”到创建列表中(可能是for循环?)。我希望我有一些代码给你看,但这是我第一次尝试使用NetworkX!
编辑
为了让你对我的意思有一个直观的理解,这里有两个图像。第一个是正则网络(又称格),第二个是随机网络。第一个边列表是手动创建的,以便复制国际象棋表,而第二个边列表显示的是第一个棋盘的(手动)洗牌对应项。正如您所看到的,节点保持在完全相同的位置。希望这能帮助更多的人。谢谢!


发布于 2015-10-15 02:48:37
下面是一个networkx命令,它将创建一个图,以便每个节点都有一个边缘:
import networkx as nx
G = nx.configuration_model([1]*1000)如果你仔细观察它的核心,它会回答你的问题--每个节点都会出现在中,正好是的一个边缘。
import random
mylist = random.suffle(range(start,end))
edgelist = []
while mylist:
edgelist.append((mylist.pop(),mylist.pop()))在进行弹出之前,您应该保证mylist具有偶数长度。
https://stackoverflow.com/questions/33134205
复制相似问题