gpt4 book ai didi

python - 邻接矩阵没有正确填充python

转载 作者:太空宇宙 更新时间:2023-11-03 12:28:22 26 4
gpt4 key购买 nike

我尝试实现一个简单的邻接矩阵来跟踪无向图中哪些节点连接到哪些节点。但是,我的邻接矩阵通过更改整个列而不是单个单元格而不断搞砸。这是我的代码:

def setup_adj_matrix(size, edges):
# initialize matrix with zeros
adj_matrix = [[0] * size] * size
# edges is a list of tuples, representing 2 nodes connected by an edge
for edge in edges:
v1 = edge[0]
v2 = edge[1]
adj_matrix[v1][v2] = 1
adj_matrix[v2][v1] = 1
for row in adj_matrix:
print row

对于具有 3 个节点 (0, 1, 2) 和边 [(0,1),(0,2),(1,2)] 的图,我应该得到

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

但是,我得到的都是 1。知道问题出在哪里吗?

最佳答案

具有列表和 int 的乘法运算符返回对同一列表的多个引用,而不是多个副本。您的数组包含同一个对象九次。

您可以使用双列表理解创建正确的数组:

def init_matrix(x, y):
return [[[0] for i in range(x)] for j in range(y)]

关于python - 邻接矩阵没有正确填充python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17552690/

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