2017-10-05 22 views
0

我有一个进入Spark函数的数字列表。每个数字是一个类别的下限...... E.g,Apache Spark从边界列表中获取数字

6.252 1 
5.502 2 
4.387 3 

然后我输入一个数字到这个函数。基本上我想看看它列入哪个列表的索引。所以8.5将会属于第一类,6.1将在第二类。我尝试使用绝对值使用

myIndex = list.index(min(list, key=lambda x:abs(x-inputVal)))) 

但这可能会给我错误的桶,因为它只是寻找接近。我还想过通过列表遍历蛮力,并抓取当前值和下一个值,但必须有一个更优雅的解决方案。

回答

0

您可以使用对开模块:

import bisect 

breaks = sorted([4.387, 5.502, 6.252]) 

len(breaks) - bisect.bisect_left(breaks, 4.3)