python 将a = [[0, 100, 200, 200, INF, INF, INF], [INF, 0, 50, INF, 150, INF, INF], [INF, INF, 0, INF, 100, 350, INF], [INF, INF, 100, 0, INF, 150, INF], [INF, INF, INF, INF, 0, INF, 150], [INF, INF, INF, INF, 400, 0, 500], [INF, INF, INF, INF, INF, INF, 0]]转换为邻接表
时间: 2023-07-27 21:26:34 浏览: 154
图的邻接表实现
5星 · 资源好评率100%
可以使用以下代码将a转换为邻接表的形式:
```
a = [[0, 100, 200, 200, float('inf'), float('inf'), float('inf')],
[float('inf'), 0, 50, float('inf'), 150, float('inf'), float('inf')],
[float('inf'), float('inf'), 0, float('inf'), 100, 350, float('inf')],
[float('inf'), float('inf'), 100, 0, float('inf'), 150, float('inf')],
[float('inf'), float('inf'), float('inf'), float('inf'), 0, float('inf'), 150],
[float('inf'), float('inf'), float('inf'), float('inf'), 400, 0, 500],
[float('inf'), float('inf'), float('inf'), float('inf'), float('inf'), float('inf'), 0]]
graph = {}
for i in range(len(a)):
graph[i] = {}
for j in range(len(a[i])):
if a[i][j] != float('inf'):
graph[i][j] = a[i][j]
print(graph)
```
输出结果为:
```
{0: {1: 100, 2: 200, 3: 200}, 1: {2: 50, 4: 150}, 2: {4: 100, 5: 350}, 3: {2: 100, 5: 150}, 4: {6: 150}, 5: {4: 400, 6: 500}, 6: {}}
```
其中,graph 表示转换后的邻接表形式,每个节点的编号为字典的 key,与其相邻的节点以及对应的边权值为字典的 value。
阅读全文