擅长:python、mysql、java
<p>由于使用<code>bisect</code>进行线性搜索,因此速度不如使用<code>bisect</code>那么快,但下面对间隔或指定间隔的顺序(也没有对正在比较的值类型(可以是整数、浮点数、日期等)做一些假设:</p>
<pre><code>import sys
def caught_speeding(speed, intervals):
for i, interval in enumerate(intervals):
if interval[0] <= speed <= interval[1]:
return i
return None # wasn't in any interval
speed_ranges = [[0, 60], [61, 80], [81, sys.maxint]]
print(caught_speeding(45, speed_ranges)) # > 0
print(caught_speeding(65, speed_ranges)) # > 1
print(caught_speeding(90, speed_ranges)) # > 2
</code></pre>