在我制作的这个游戏中,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
提交
取消