gpt4 book ai didi

python - 从边缘列表创建邻接矩阵

转载 作者:太空宇宙 更新时间:2023-11-04 00:02:00 25 4
gpt4 key购买 nike

你好,我正在尝试编写从边缘列表生成邻接矩阵的代码,但我无法让我的代码工作,我不明白为什么

我试过反转索引并逐步运行它

graph1=[[0,2,3,4],[1,2,4],[0,2,3,4],[1,2,3,4],[0,2,4]]

def Adjacency(graph):
index = 0 #Index of the sublist
matrix = [[0]*len(graph)]*len(graph)
print(matrix)
for sublist in graph:
for value in sublist:
print(value)
matrice[index][value] = 1
index+=1

print(matrix)

Adjacence(graphe1)

预期的输出应该是

[[1 0 1 1 1]
[0 1 1 0 1]
[1 0 1 1 1]
[0 1 1 1 1]
[1 0 1 0 1]]

但是我得到了

[[1, 1, 1, 1, 1], 
[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1]]

我几乎可以肯定我忘记了一个小细节,但我想不通。如果有人可以,我会很高兴。

最佳答案

你需要换行:

matrix = [[0]*len(graph)]*len(graph)

到:

matrix = [[0]*len(graph) for i in range(len(graph))]

这是因为当您按照您的方式创建数组时,它以不同的方式存储它们并且它们可以一次编辑多个值。尝试阅读 this questionthis one

关于python - 从边缘列表创建邻接矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55399815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com