对数时间Python中有序列表中的位置元素

我有一个已排序的列表,我需要在该列表中放置一个元素,以使上一个元素为< =,而下一个元素为> (该列表是浮点数的列表)

我将需要返回< =的元素的位置,即上一个元素 我如何在对数时间内实现这一目标.我想使用类似于二进制seacrh的方法,但无法使其正常工作 任何帮助,将不胜感激 附言一个例子是:如果列表是

testlist=[0.0, 0.25, 0.5, 0.75, 1.0]

我运行功能为0.27
该函数将返回1(位置0.25)
如果我将其运行为0.5,它将返回2

解决方法:

有一个专用的二进制搜索模块:bisect

import bisect

testlist=[0.0, 0.25, 0.5, 0.75, 1.0]
print bisect.bisect(testlist, .27) - 1
## 1
上一篇:Mysql 常用函数(16)- locate 函数


下一篇:ubuntu之E: Unable to locate package ‘xxx’ 使用apt-get 安装失败