了解用于图构建的字典的语法以及如何操作它们

问题描述

我有以下代表加权图的python字典

graph1 = {
    0: {1: 1,2: 2},1: {0: 1,2: 0,3: 0,4: 3},2: {0: 2,1: 0,5: 4},3: {1: 0,4: 0},4: {1: 3,5: 0},5: {2: 4,4: 0,6: 0},6: {5: 0},}

我正在尝试创建一个算法,以允许在给定节点和边的数量的情况下生成这些图。为了了解如何从头开始创建图,我首先尝试向上述图添加一个节点。我做了以下事情:

graph1[7]={6:7}

这很好。但是我不明白 {6:7} 是什么。它是词典中的词典吗?是一套吗?

我的目标是能够在n个节点的集合之间添加随机边,因此我试图弄清楚如何做。

graphSize=n
for i in range(graphSize)
    for j in range(rand(graphSize))
        Graph[i].add({"node that is not i","random wieght"})

但是这不可能,因为字典没有添加添加功能。还有另一种方法吗?

解决方法

这很好。但是我不明白{6:7}是什么。是词典中的词典吗?

是的。 Python中dict文字的语法为{[key: value,]*}

集合文字不包含:(用于分隔键和值)。

但是这不可能,因为字典没有添加或添加功能。还有另一种方法吗?

您将项目添加到Graph字典的方式是否相同?只需分配索引:

Graph[i][j] = whatever