我试图使用列表创建一个二维数组。从输入我有一个元组与行和列的规格。这样的事情。
((1, 2, 3, 4, 5), (9, 8, 7, 6, 5))
这意味着我需要一个这样的列表:
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
(A 5x5矩阵)
制作矩阵,因为我不知道规格元组的长度。我做了一个构造函数来制作矩阵。像这样:(t是规格元组)
t=[[0] * len(t[0])] * len(t[1])
这实际上是我想要的,但当我尝试更改值时会发生这种情况: (y是矩阵)
>>>y[0][1]=2
>>> y
[[0, 2, 0, 0, 0], [0, 2, 0, 0, 0], [0, 2, 0, 0, 0], [0, 2, 0, 0, 0], [0, 2, 0, 0, 0]]
它改变了所有行的所有[1]索引。为什么要这样做?