python - 了解用于图构建的字典的语法以及如何操作它们
问题描述
我有以下表示加权图的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"})
然而,这是不可能的,因为字典没有附加或添加功能。还有另一种方法可以做到这一点吗?
解决方案
这工作得很好。然而我不明白 {6:7} 是什么。是字典中的字典吗?
是的。Python 中 dict 字面量的语法是{[key: value,]*}
.
集合文字不会有:
(分隔键和值)。
然而,这是不可能的,因为字典没有附加或添加功能。还有另一种方法可以做到这一点吗?
与将项目添加到Graph
字典的方式相同吗?只需分配给索引:
Graph[i][j] = whatever
推荐阅读
- iis - 获取 AccessToken,VerifySmsToken mscorlib“无法连接到远程服务器”,
- python - TypeError:“响应”类型的对象不是 JSON 可序列化的
- python - 使用 Python 在 Mac 上听键盘并遇到 AttributeError: CFMachPortCreateRunLoopSource
- dns - 什么是 DNS 中的“附加部分”以及它是如何工作的?
- java - 第 8 天:字典和地图 JAVA
- javascript - 调用函数名和添加的变量
- android - 从 Firebase 检索图像不起作用?
- protractor - 如何在量角器中查找表单提交输入
- java - 不鼓励多行 toString() 输出吗?
- .htaccess - 订单似乎与 https://www 重定向无关?