美文网首页
二分模块bisect

二分模块bisect

作者: 伍只蚊 | 来源:发表于2017-09-12 15:26 被阅读16次

    bisect意为一分为二,所以这个模块是用来解决二分查找问题的。
    该模块的主要函数有两个

    bisect.bisect_left(L,x)  #在L中查找x,x存在时返回x左侧的位置,x不存在返回应该插入的位置
    
    bisect.bisect(L,x)    #在L中查找x,x存在时返回x右侧的位置,x不存在返回应该插入的位置
    

    看下面的小列子,使用二分模块中的函数来查找分数在分数断点里的位置,通过返回的值来对应评分等级。

    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
    

    插入函数有insort 和 insort_left用法和上面类似。

    相关文章

      网友评论

          本文标题:二分模块bisect

          本文链接:https://www.haomeiwen.com/subject/qemcsxtx.html