我是Python的新手,我正在做一个包含8个字谜的问题(我的第一个程序)。我在将列表追加到另一个列表时遇到问题。下面是我的代码的一部分。
def solvePuzzle(puzzle,path,visited):
moveState = []
if(init == goal):
path.append(puzzle)
return True;
puzzleT = deepcopy(puzzle)
visited.append(copy(puzzle))
index = findBlankTile(puzzleT)
moveState = moveTileChoice(puzzleT,visited,index)
#move process
for move in moveState:
path.append(copy(puzzle))
if(applyMove(move,puzzle,path,visited,index)):
return True;
else:
path.remove()
return False;在应用移动函数中,当我用拼图中的其他数字块交换空白块时(下面的代码),访问列表和路径列表中的所有值也改变了,这不是我想要的。我的代码哪里做错了?
def applyMove(move,puzzle,path,visited,index):
row = index[0]
col = index[1]
if move == "Left":
puzzle[row][col] , puzzle[row][col-1] = puzzle[row][col-1] , puzzle[row][col]
return solvePuzzle(puzzle,path,visited)
elif move == "Right":
puzzle[row][col] , puzzle[row][col+1] = puzzle[row][col+1] , puzzle[row][col]
return solvePuzzle(puzzle,path,visited)
elif move == "Up":
puzzle[row][col] , puzzle[row-1][col] = puzzle[row-1][col] , puzzle[row][col]
return solvePuzzle(puzzle,path,visited)
elif move == "Down":
puzzle[row][col] , puzzle[row+1][col] = puzzle[row+1][col] , puzzle[row][col]
return solvePuzzle(puzzle,path,visited)
else:
return False;发布于 2020-03-11 21:34:22
使用list.extend(seq),并查看here。
https://stackoverflow.com/questions/60637223
复制相似问题