首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中将列表追加到另一个列表时出现问题

在Python中将列表追加到另一个列表时出现问题
EN

Stack Overflow用户
提问于 2020-03-11 21:30:13
回答 1查看 64关注 0票数 1

我是Python的新手,我正在做一个包含8个字谜的问题(我的第一个程序)。我在将列表追加到另一个列表时遇到问题。下面是我的代码的一部分。

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

在应用移动函数中,当我用拼图中的其他数字块交换空白块时(下面的代码),访问列表和路径列表中的所有值也改变了,这不是我想要的。我的代码哪里做错了?

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

回答 1

Stack Overflow用户

发布于 2020-03-11 21:34:22

使用list.extend(seq),并查看here

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

https://stackoverflow.com/questions/60637223

复制
相关文章

相似问题

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