问题出在初始化步骤上。
for i in range (0,m): matrix[i] = columns
这段代码实际上使您的每一行都
matrix引用相同的
columns对象。如果任何列中的任何项目发生更改-其他所有列都将发生变化:
>>> for i in range (0,m):... matrix[i] = columns... >>> matrix[[0, 0, 0], [0, 0, 0]]>>> matrix[1][1] = 2>>> matrix[[0, 2, 0], [0, 2, 0]]
您可以在嵌套循环中初始化矩阵,如下所示:
matrix = []for i in range(0,m): matrix.append([]) for j in range(0,n): matrix[i].append(0)
或者,通过使用列表理解来实现单线:
matrix = [[0 for j in range(n)] for i in range(m)]
要么:
matrix = [x[:] for x in [[0]*n]*m]
也可以看看:
- 如何在Python中初始化二维数组?
希望能有所帮助。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)