Python递归错误:获取元组的repr时超过了最大递归深度

Python递归错误:获取元组的repr时超过了最大递归深度,python,recursion,Python,Recursion,我尝试过寻找其他一些类似问题的解决方案,但我仍然有一个问题。这是我的密码: def nearest_neighbor(cities_tups, temp_dist, best_tour): if best_tour == []: best_tour.insert(0, cities_tups[0]) print(best_tour) nearest_neighbor(cities_tups, temp_dist, best_tour) els

我尝试过寻找其他一些类似问题的解决方案,但我仍然有一个问题。这是我的密码:

def nearest_neighbor(cities_tups, temp_dist, best_tour):
   if best_tour == []:
       best_tour.insert(0, cities_tups[0])
       print(best_tour)
       nearest_neighbor(cities_tups, temp_dist, best_tour)
   else:
        last_point = best_tour[len(best_tour) - 1]
        best_next = (math.inf, math.inf)
        for l in cities_tups:
            print('Last Point was:', last_point)
            print('This Point is:', l)
            if((distance((last_point[0],last_point[1]), (l[0],l[1]))) < (distance((last_point[0],last_point[1]), (best_next[0],best_next[1])))):
                print('new best detected')
                distance_to_add = distance((last_point[0],last_point[1]), (l[0],l[1]))
                best_next = l
        best_tour.insert(len(best_tour),best_next)
        temp_dist += distance_to_add
        print('best tour:', best_tour)
        print('temp dist:', temp_dist)
        nearest_neighbor(cities_tups, temp_dist, best_tour)
def最近邻(城市、临时区、最佳旅游):
如果最佳巡回演出==[]:
最佳巡回演出。插入(0,城市组[0])
打印(最佳巡回)
最近的邻居(城市、临时区、最佳旅游)
其他:
最后一点=最佳巡回赛[len(最佳巡回赛)-1]
best_next=(math.inf,math.inf)
对于城市中的l\u tups:
打印('最后一点是:',最后一点)
打印('此点为:',l)
如果((距离((最后一点[0],最后一点[1]),(l[0],l[1]))<(距离((最后一点[0],最后一点[1]),(最佳下一个[0],最佳下一个[1])):
打印('新的最佳检测')
距离_到_相加=距离((最后一个_点[0],最后一个_点[1]),(l[0],l[1]))
最佳下一个=l
最佳巡回演出。插入(镜头(最佳巡回演出),最佳巡回演出下一个)
温度距离+=距离加起来
打印('best tour:',best_tour)
打印('临时区:',临时区)
最近的邻居(城市、临时区、最佳旅游)

我尝试使用最近邻算法来寻找点之间的“最佳”路径。这些点存储在“cities_tups”中,这是一个包含x和y坐标的元组的元组。在抛出递归错误之前,代码将运行多次迭代。是内存不足还是有办法解决这个问题?

在任何可能的情况下,函数都会递归地调用自身。你是如何想象这一切会结束的?@jasonharper这可能是答案,这肯定是解决办法。非常感谢。