python - 如何生成包含几个随机整数的列表?

标签 python list random neural-network networkx

我对 Python 和 NetworkX 相当陌生。我需要创建一个类似于 Edgelist=[(0,1),(0,3),(1,0),(1,2),(1,4),(2,1),(2,5)] 的列表,这些元素代表边(链接)的起始和结束节点,而边又是网络的一部分。

我希望 Python 通过随机选择 (start,end) 的整数值来创建您在列表中看到的对,而不是手动设置它们。来自分配的值范围(即 0, 999 ),这些值代表节点 ID。然后,我想确保每个节点 ID 至少包含在一系列(开始,结束)值中一次(这意味着我的所有节点将连接到至少一个其他节点) .

我知道我可以使用 random.randint(0, 999)但我不知道如何将其“嵌套”到列表的创建中(也许是 for 循环?)。我希望我有一些代码可以向您展示,但这是我第一次尝试使用 NetworkX!

编辑

为了让您直观地了解我的意思,这里有两张图片。第一个是规则网络(又称格子),第二个是随机网络。第一个的边缘列表是手动创建的,以便重现国际象棋棋盘,而第二个显示的边缘列表是第一个边缘列表(手动)打乱的副本。 如您所见,节点保存在完全相同的位置。希望这能有所帮助。谢谢! enter image description here enter image description here

最佳答案

有一个类似的答案,但对于 - How to generate a fully connected subgraph from node list using python's networkx module 上的完整图表

就您而言,使用 zubinmehtaanswer :

import networkx
import itertools

def complete_graph_from_list(L, create_using=None):
    G = networkx.empty_graph(len(L),create_using)
    if len(L)>1:
        if G.is_directed():
            edges = itertools.permutations(L,2)
        else:
            edges = itertools.combinations(L,2)
        G.add_edges_from(edges)
    return G

您可以将图表构建为:

S = complete_graph_from_list(map(lambda x: str(x), range(0,1000)))
print S.edges()

关于python - 如何生成包含几个随机整数的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33134205/

相关文章:

python - django 在 heroku 上发布 url

javascript:选择随机项目(只要它尚未显示)

c++ - 随机整数c++

Python 列表规范化

c - 用1随机填充100X100矩阵的100格

Python 请求 Tableau REST API SSL 错误

python - 简单有效的网络框架

python - 在 Heroku 上找不到 parse_rest 模块,但在 localhost 上工作

python - 将特定列添加到单行列表(可能有点基础)

list - Ansible:如何将默认值应用于列表的每个复杂参数