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', '.']]
在您的第二个while循环中,您必须追加数组变量的副本
while(x < 3):
matrix.append(array.copy())
x += 1
否则,您将有3次相同的列表
matrix[0][1] = 'x'
print(matrix)
输出:
[['.', 'x', '.'], ['.', '.', '.'], ['.', '.', '.']]