函数不返回

2024-05-29 10:49:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用模拟退火法研究旅行推销员问题,需要编写一个函数,交换列表中的两个元素(列表包含销售人员旅行到的目的地,我假设他从他返回的同一个城市开始)。我包含了以下代码:

def new_walk(old_walk):
    n1 = rand.randint(1, len(old_walk)-2)
    n2 = rand.randint(1, len(old_walk)-2)
    walk = old_walk
    walk[n1], walk[n2] = walk[n2], walk[n1]
    return walk

n1和n2是两个整数,对应于我要切换的两个随机列表索引,len(old_cycle)-2函数的最大值中的randint的原因是我不想用任何其他点切换最后一个点。 如果我在函数定义中包含一个print语句,它将给出正确的结果,两个旧的元素将被切换。但是,一旦我将它返回到main函数,它就会返回旧的循环列表。任何帮助都将不胜感激


Tags: 函数代码元素列表len人员oldwalk

热门问题