我正在为我的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]
被授予时,这些数字是完全随机生成的。在
就像我说的,当我对print语句进行一些检查时,我发现这个方法在多个方面都不起作用,甚至在某一点上,我甚至得到了相同的索引不同的值。有没有人有更好的可行的方法来做到这一点?-python 2.7.x版
旁注-我来自一个php背景,仍然在热身python,所以有些语法可能是错误的。。。在
我会选择:
像这样:
如果您不想减少索引,那么只要这样就足够了:
^{pr2}$使用
abs
键进行排序时,这是一个nlogn解决方案。这是一个线性解相关问题 更多 >
编程相关推荐