Python:修改矩阵的一行,但每一行都会受到影响

时间:2020-06-23 15:47:44

标签: python matrix

我初始化了3列2行的矩阵

┌       ┐
| 0 0 0 |
| 0 0 0 |
└       ┘

matrix = [[0] * 3] * 2产生,输出[[0, 0, 0], [0, 0, 0]]

然后我想在第一行的每个元素中添加1,如下所示:

┌       ┐
| 1 1 1 |
| 0 0 0 |
└       ┘

如果我使用

for i in range(3):
    matrix[0][i] += 1

它输出[[1, 1, 1], [1, 1, 1]],其中每一行都受影响:

┌       ┐
| 1 1 1 |
| 1 1 1 |
└       ┘

但是,如果我改用matrix[0] = [x+1 for x in matrix[0]],则结果[[1, 1, 1], [0, 0, 0]]看起来很正常。


为什么会这样?有什么方法可以分离每行,还是我必须使用numpy

0 个答案:

没有答案