我不知道这是不是一个简单的问题,但我找不到任何东西,所以我想我会问它。
我尝试在while循环中调用一个函数,但它会一直返回相同的结果,直到条件完成。函数main()
从另一个文件导入,并返回一个包含两个元素[a,b]
的列表。
这两个元素是随机生成的,因此它们应该在每一步之后改变。如果我自己调用它,该函数可以正常工作。
到目前为止,这是我的代码,我希望有人可以帮助我:
我认为我的列表x
出了问题,所以我尝试在每一步后删除它,但它不会改变任何内容。
from some_module import main
def loop(variable):
i = 0
while i <= 5 :
x = main(variable)
a ,b = x[0], x[1]
print a, b
del x[:]
i += 1
main()的代码是:
def main(file):
iniciate(file)
obtain_neighbours(initial_solution())
get_all_costs(get_all_solutions())
return get_best_solution()
随机选择出现在函数initial_solution()中:
#those list are being updated at every step
So = []
I_assign = []
I_available = ['1','2','3','4',...,'n']
def initial_solution():
while len(I_available) != 0:
update_I_assign()
random_task = random.choice(I_assign)
So.append(random_task)
I_available.remove(random_task)
return So
def get_best_solution():
if min(i for i in all_cost) < calculate_cost(fill_station(So)):
best_solution = solutions[all_cost.index(min(i for i in all_cost))]
return [min(i for i in all_cost),best_solution]
else:
best_solution = fill_station(So)
return [calculate_cost(fill_station(So)),best_solution]
我很难在这里展示其余的代码,因为它很长。希望更新能帮助您理解。