[英]return closest item to a given value in a list and its index
我發現以下代碼用於搜索列表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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.