如何在python中编辑矩阵中的值?

问题描述 投票:0回答:1
array = []
matrix = []

x = 0

while(x < 3):
    array.append(".")
    x += 1

x = 0

while(x < 3):
    matrix.append(array)
    x += 1

输出:

[['.', '.', '.'], ['.', '.', '.'], ['.', '.', '.']]

当我尝试将例如matrix [0] [1]更改为“ x”时,它将更改所有内部数组中的位置。有人可以解释为什么吗?

示例:

matrix[0][1] = "x"

输出:

[['.', 'x', '.'], ['.', 'x', '.'], ['.', 'x', '.']]
python
1个回答
3
投票

在您的第二个while循环中,您必须追加数组变量的副本

while(x < 3):
    matrix.append(array.copy())
    x += 1

否则,您将有3次相同的列表

matrix[0][1] = 'x'
print(matrix)

输出:

[['.', 'x', '.'], ['.', '.', '.'], ['.', '.', '.']]

0
投票
您引用相同的数组,将其附加3次。您需要为每一行创建一个数组。
© www.soinside.com 2019 - 2024. All rights reserved.