我有一个python的家庭作业,我应该让一个“机器人”从头到尾,并返回到目标的路径。我让机器人搜索,但我希望列表只是显示从头到尾的路径。现在路径列表返回所有访问过的方块。。而且,当到达目标时,它不会停止,只需继续使用其他节点。
我错过了什么?

def find(labyrinth, robotPos, pathList = []):

    frontier = adjacent_passages(labyrinth, robotPos)
    pathList.append(robotPos)

    if len(frontier) == 1:
        print("Corner")
        return []

    for i in range(0, len(frontier)):
        if frontier[i] == goal:
            pathList.append(frontier[i])
            return pathList

    for i in range(0, len(frontier)):
        if frontier[i] not in pathList:
            pathList.append(frontier[i])
            if (find(labyrinth, frontier[i], pathList) == []):
                pathList.pop()

    return pathList

最佳答案

我不知道这是否是您问题的答案,但我注意到的第一件事是您不应该使用列表作为默认函数参数(pathList = [])。
"Least Astonishment" and the Mutable Default Argument

08-28 02:43