我正在嘗試更改位置(row, col)
中的元素board
,它是一個列表的列表。教授給我們的最新版本創建了一個副本並將其返回。因此,我認爲這是耗時:如何修改列表中的元素值?
# Add a piece to the board at the given position, and return a new board (doesn't change original)
def add_piece(board, row, col):
return board[0:row] + [board[row][0:col] + [1,] + board[row][col+1:]] + board[row+1:]
要就地改變它,我試圖做的(像C++的方式):
def add_piece(board, row, col):
board[row][col]=1
return board
但這並不改變board
,我相信,因爲我得到不正確的輸出。有人可以告訴我如何在原地更改它,以確保每次原始board
本身被修改?謝謝!
編輯:顯然,這不是MVC - 有人請指出需要添加什麼嗎?我得到什麼輸出是沒有必要的因爲我只想要一個元素在board[row][col]
進行更改,但這並沒有發生!
提供一個[MCVE];輸入,輸出和所需的輸出。 「我得到一個不正確的輸出」並不是很豐富,目前你的代碼看起來是正確的,所以別的是錯的;我們沒有足夠的診斷問題。 – ShadowRanger
@ShadowRanger,我很抱歉,先生,但我認爲我得到的輸出是無關緊要的。我想要的是隻有位置板[row] [col]上的元素被改變。這個,我認爲是最小的,完整的和可驗證的。謝謝。 –
@ whackamadoodle3000,正確。我希望第二個修改董事會。如果你能指出我能做到這一點(無需返回一個新的「board」進行修改),那將會非常有幫助。 –