问题出在初始化步骤上。
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)]
or:
matrix = [x[:] for x in [[0]*n]*m]
也可以看看:
希望有帮助。