以下代码是一个更大的程序的一部分。它引起了一个问题,当我试图调试它时,我决定打印一个二维数组'posB‘,它会随着循环的每次迭代而不断变化,尽管我似乎从来没有改变过它。
blackBoard = [[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[1,1,1,1,1,1,1,1],[5,2,3,4,6,3,2,5]]
possibleMoves = [[6,0,5,0],[6,1,5,1],[6,2,5,2],[6,3,5,3]]
posB = blackBoard
for move in possibleMoves:
print(posB)
blackBoard = posB
blackBoard[move[2]][move[3]] = blackBoard[move[0]][move[1]]
blackBoard[move[0]][move[1]] = 0谢谢,如果你能解释一下发生了什么,请让我知道。
发布于 2019-02-02 03:28:05
这是因为在Python中列表赋值是通过引用来完成的。我建议你复制这个列表。例如,如果您使用的是Python3.x(>=3),请执行以下操作:
blackBoard = posB.copy()你可以在这里找到更多信息:How to clone or copy a list?
https://stackoverflow.com/questions/54485845
复制相似问题