我已经创建了一个基本的python程序,它最终将尝试与矩阵一起使用,但是我遇到了一个我无法理解的问题。你知道吗
当设置0'th
列表的0'th
元素时,程序将第一个列表的0'th
元素分配给相同的值(在本例中是一个)
它没有理由这么做,因为程序没有导入的模块或任何其他应该影响我已经写的东西
请帮忙
class Matrix(object):
def createMatrix(self):
self.values = [1, 2, 3, 4]
self.rows = 2
self.coloms = 2
self.colomList = [0] * self.coloms
self.matrix = [self.colomList] * self.rows
test = Matrix()
test.createMatrix()
print(test.matrix)
test.matrix[0][1] = 1
print(test.matrix)
您正在创建一个列表
[0, 0]
,然后将同一个列表分配给两行。试试这个(注意“columns”的正确拼写):这只是一个建议,但您可能还希望更改方法以接受宽度和高度的参数,并在实例化对象时使用^{} 方法来执行所有这些操作:
作为进一步的改进,我们可以看到宽度和高度取决于
self._matrix
,因此我们可以动态计算它们,而不是将它们存储为属性,以确保它们不会失去同步:相关问题 更多 >
编程相关推荐