为了账号安全,请及时绑定邮箱和手机立即绑定

每当连续替换一个数字时,它就会改变整个变量

每当连续替换一个数字时,它就会改变整个变量

料青山看我应如是 2023-12-12 09:58:23
在我制作的这个游戏中,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][:]创建副本

查看完整回答
反对 回复 2023-12-12
  • 1 回答
  • 0 关注
  • 96 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信