我有一段代码是对列表进行顺序搜索的,并且我必须不断地浏览一个大的排序列表并找到最接近的匹配值,我这样做了数千次。有没有一种更有效的方法来执行此搜索,对于该区域而言,节省少量时间将是巨大的。无论如何,我是否必须不断重复自己不知道的搜索这一事实呢?
搜索列表的部分如下所示:
import bisect
x = 2.6
myList = [1,2,3,4,5,6,7,8,9,10]
index = bisect.bisect_left(myList,x)
if len(myList) > index and abs(x-myList[index]) < abs(x-myList[index-1]):
closestValue = myList[index]
else:
ClosestValue = myList[index-1]