bisect意為一分為二,所以這個(gè)模塊是用來(lái)解決二分查找問(wèn)題的。
該模塊的主要函數(shù)有兩個(gè)
bisect.bisect_left(L,x) #在L中查找x,x存在時(shí)返回x左側(cè)的位置,x不存在返回應(yīng)該插入的位置
bisect.bisect(L,x) #在L中查找x,x存在時(shí)返回x右側(cè)的位置,x不存在返回應(yīng)該插入的位置
看下面的小列子,使用二分模塊中的函數(shù)來(lái)查找分?jǐn)?shù)在分?jǐn)?shù)斷點(diǎn)里的位置,通過(guò)返回的值來(lái)對(duì)應(yīng)評(píng)分等級(jí)。
import bisect
def grade(score,breakpoints=[60,70,80,90],grades='FDCBA'):
i = bisect.bisect(breakpoints,score)
return grades[i]
if __name__ == '__main__':
l = [ grade(score) for score in [33,60,65,70,78,80,90,99]]
print l
插入函數(shù)有insort 和 insort_left用法和上面類似。