我正在尝试更改位置(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”进行修改),那将会非常有帮助。 –