python 中的简单 n x n 矩阵不起作用

simple n x n matrix in python not working

我用它来创建 'x':

的 4x4 矩阵
listof=[] #table
nic=[] #row
max = 4 #tabele size
nic = ['x']*max #row of x-es
listof = [nic]*max #table of rows
print(listof) #it looks ok
listof[1][1] ="o" #changing one x to o
print(listof) # wrong since all rows have o on index 1

?怎么会?

顺便说一句:我知道如果我使用它会有效:

listof = [["x" for x in range(max)] for y in range(max)]

但是上面的代码有什么问题呢? 谢谢

问题是 listof 最终由四个 对同一个列表 的引用组成。因此,当您更改一行中的元素时,它会更改所有行。