【发布时间】:2010-12-13 12:07:06
【问题描述】:
我收到的作业有一个奇怪的问题。我们应该实现一个矩阵类。好吧,这并不难,但 Python 不会按照我说的去做。但我确信有一个解释。
问题在于,在下面的代码中,我尝试将值(在列表中提供)保存到矩阵中。
class simplematrix:
matrix = [[]]
def __init__(self, * args):
lm = args[0]
ln = args[1]
values = args[2]
self.matrix = [[0]*ln]*lm
for m in range(lm):
for n in range(ln):
self.matrix[m][n] = values[(m*ln)+n]
vals = [0,1,2,3,4,5]
a = simplematrix(2,3,vals)
当我尝试打印矩阵时,我希望在一张纸上得到 [[0,1,2],[3,4,5]],如果我手动运行它就会得到。如果我从 Python 打印矩阵,我会得到 [[3,4,5],[3,4,5]] 。 谁能告诉我为什么 Python 会这样,或者我是否在某个地方犯了一些愚蠢的错误? :)
【问题讨论】: