我正在为我的 GA 工作(实际上是健身计算),我需要从一个值最接近零的列表中获取两个值的索引。我一直在互联网上寻找大约一个小时,虽然看起来我已经变得非常接近,而且看起来它应该可以工作,但使用打印语句进行测试表明我的代码不起作用..
我现在的流程是:
- 找到最近的索引并存储它
- 从原始数组中删除它
- 寻找新的最近的
这是有问题的代码:
closest = min(range(len(fitness_levels)), key=lambda i: abs(fitness_levels[i]-0))
fitness_levels.pop(closest)
second_closest = min(range(len(fitness_levels)), key=lambda i: abs(fitness_levels[i]-0))
当fitness_levels = [-20, 23, -55, 11, 10, -18, -48, 16, -60, 20, 22, 16, 21, 66, 10, 46, -42]
被授予时,这些数字是完全随机生成的。
就像我说的,当我对打印语句进行一些检查时,我发现这种方法不能以多种方式工作,有时我什至最终得到了相同的索引不同的值。有没有人有更好的可行方法来做到这一点?- 蟒蛇2.7.x
旁注-我来自 php 背景,仍在准备使用 python,因此某些语法可能是错误的...