我正在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