我发现以下代码用于搜索列表a中最接近11.1的值,例如:a =(1,2,3,4,5,6,7,8,9,10,11,12)
min(enumerate(a), key=lambda x: abs(x[1]-11.1))
代码如何选择正确的索引?有更好的实现方式吗?
enumerate()
每次迭代中的函数返回一个元组,其中第一个元素是索引,第二个元素是列表的实际元素。
然后,您会在键为-的位置找到最小值,它abs(x[1] - 11.1)
给出了元素和之间的绝对差11.1
。
显示枚举行为的示例-
>>> l = [10,11,12]
>>> a = enumerate(l)
>>> next(a)
(0, 10)
>>> next(a)
(1, 11)
>>> next(a)
(2, 12)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句