0
我有一個問題,在下面顯示的函數中更改錯誤的變量。功能正在改變錯誤的變量
def no_updown() -> int:
print(g.matrix)
count = 0
arr = g.matrix
arr = g.move_elements(arr)
for x in range(g.size):
for y in range(g.size - 1):
if arr[y, x] == arr[y + 1, x] and arr[y, x] > 0:
arr[y, x] *= 2
arr[y + 1, x] = 0
count += 1
return count
這裏是g.move_elements:
def move_elements(self, arr) -> np.matrix:
for x in range(self.size):
temp = 0
for y in range(self.size):
if not arr[y, x] == 0:
arr[temp, x] = arr[y, x]
if not temp == y:
arr[y, x] = 0
temp += 1
return arr
我想從no_updown()操作只在ARR。相反,我得到的是g.matrix已更改。我相信這與參考有關,但我不知道什麼。
對,不知道,這樣一個基本的... g.matrix是np.matrix,所以我可以使用np.copy()。謝謝! – 2015-04-05 16:23:24