我正在Python(2.5.4)中编写一个程序,并且我意识到我的代码不工作是因为非常不寻常的事情。我要举一个例子:Python中的矩阵问题
A = [[0]*2]*2
当我打印,我得到:
[[0, 0], [0, 0]]
这是确定的。但是现在我想改变第一列和第一行中的元素。所以,I型:
A[0][0] = 1
但是当我再次打印时,我得到:
[[1, 0], [1, 0]]
不过,我期待
[[1, 0], [0, 0]]
这ruinning我的所有代码。我想知道为什么会发生这种情况,以及我如何解决这个问题。
在另一方面,当我输入:
B = [[0,0],[0,0]]
而且使:
B[0][0] = 1
我得到:
[[1, 0], [0, 0]]
这更奇怪的!实施矩阵的两种方式不是相等的吗?如果我想要一个带零点的100x100矩阵怎么办?对于这种情况,使用2x2矩阵,我可以键入[[0,0],[0,0]]。但这不是一个好的解决方案。
更一般地,使用numpy的(http://www.numpy.org/)做的,而不是滚动您自己的数值计算。 – Marcin 2013-05-11 02:50:15