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
最终由四个 对同一个列表 的引用组成。因此,当您更改一行中的元素时,它会更改所有行。
我用它来创建 '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
最终由四个 对同一个列表 的引用组成。因此,当您更改一行中的元素时,它会更改所有行。