首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >二维数组和for循环

二维数组和for循环
EN

Stack Overflow用户
提问于 2019-02-02 03:14:59
回答 1查看 32关注 0票数 0

以下代码是一个更大的程序的一部分。它引起了一个问题,当我试图调试它时,我决定打印一个二维数组'posB‘,它会随着循环的每次迭代而不断变化,尽管我似乎从来没有改变过它。

代码语言:javascript
复制
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

谢谢,如果你能解释一下发生了什么,请让我知道。

EN

回答 1

Stack Overflow用户

发布于 2019-02-02 03:28:05

这是因为在Python中列表赋值是通过引用来完成的。我建议你复制这个列表。例如,如果您使用的是Python3.x(>=3),请执行以下操作:

代码语言:javascript
复制
blackBoard = posB.copy()

你可以在这里找到更多信息:How to clone or copy a list?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54485845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档