在我制作的這個游戲中,3 是人們無法移動的方塊,4 是陷阱。陷阱本來就是隱藏的,但每當我用 Row 變量隱藏它們時,它都會更改實際的 Board 變量,我從整個程序中取出了錯誤的代碼,它看起來像這樣:Board = [[1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [3, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 4, 0], [0, 0, 4, 0, 0, 0, 0, 4], [0, 0, 3, 0, 4, 0, 0, 0], [0, 0, 3, 3, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 2]]for Loop in range(len(Board)): Row = Board[Loop] for Loop2 in range(len(Row)): if Row[Loop2] == 4: Row[Loop2] = 0 print(Row) print(Board)每當數字 4 被 0 替換時,它就會被 0 替換。這僅意味著發生在變量 Row 上,但由于某種原因也發生在 Board 上。有什么理由嗎?
1 回答

Cats萌萌
TA貢獻1805條經驗 獲得超9個贊
Row = Board[Loop]
Row 指向相同的內存位置,這就是為什么其中的更改也會復制到 Board 的原因。用于Row = Board[Loop][:]
創建副本
添加回答
舉報
0/150
提交
取消