首页 > 解决方案 > 了解用于图构建的字典的语法以及如何操作它们

问题描述

我有以下表示加权图的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, 3: 0, 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"})

然而,这是不可能的,因为字典没有附加或添加功能。还有另一种方法可以做到这一点吗?

标签: pythondictionarygraphspanning-tree

解决方案


这工作得很好。然而我不明白 {6:7} 是什么。是字典中的字典吗?

是的。Python 中 dict 字面量的语法是{[key: value,]*}.

集合文字不会有:(分隔键和值)。

然而,这是不可能的,因为字典没有附加或添加功能。还有另一种方法可以做到这一点吗?

与将项目添加到Graph字典的方式相同吗?只需分配给索引:

Graph[i][j] = whatever

推荐阅读