求教做了一道OJ题目,调试发现ans的格式是ans: [[[0, 0], [0, 1], [0, 2], [0, 3]], [[0, 0], [0, 1], [0, 2], [1, 2]]] 为什么明明每次执行dfs的都是同级别的对path的append操作,会产生两个大的list. 和预期的每个都是独立元素的list不一致ans: [[0, 0], [0, 1], [0, 2], [0, 3], [0, 0], [0, 1], [0, 2], [1, 2]]  IR = [(0, 1), (1, 0), (0, -1), (-1, 0)] # input n = int(input()) code = list(map(int, input().split())) m = int(input()) book = [] for i in range(m): book.append(list(map(int, input().split()))) ans = [] path = [] visited = [[False] * m for i in range(m)] #dfs def dfs(code, index, path, visited, ans): if index == len(code): # ans.append("".join(map(str, path)) ans.append(path[:]) return for direction in DIR: x, y = path[-1][0] + direction[0], path[-1][1] + direction[1] if 0 <= x < m and 0 <= y < m and not visited[x][y] and book[x][y] == code[index]: path.append([x, y]) visited[x][y] = True dfs(code, index + 1, path, visited, ans) path.pop() visited[x][y] = False #map track for i in range(m): for j in range(m): if book[i][j] == code[0]: path.append([i, j]) visited[i][j] = True dfs(code, 1, path, visited, ans) path.pop() visited[i][j] = False #ans format if len(ans) == 0: print("error") else: res = [] for i in range(len(ans)): new_list = [] for j in range(len(ans[i])): new_list+=ans[i][j] res.append(new_list) res.sort() print(" ".join(str(i) for i in res[0])) 因为预期不同 所以改变了format部分 单纯是没想到为什么是这个格式