GitHub 博客园 Nanakon

bisect

# 二分查找算法
import bisect

farm = sorted(['haystack', 'needle', 'cow', 'pig'])
# ['cow', 'haystack', 'needle', 'pig']

#在保证列表有序的情况下给出要插入的新元素的索引位置
#bisect.bisect
#bisect.bisect_left
#bisect.bisect_right
#已经存在的值插入
bisect.bisect(farm, 'needle') # 3
bisect.bisect_left(farm, 'needle') # 2
bisect.bisect_right(farm, 'needle') # 3
bisect.bisect(farm, 'chicken') # 0

#bisect.insort
#bisect.insort_left
#bisect.insort_right
bisect.insort(farm, 'eggs')
# ['cow', 'eggs', 'haystack', 'needle', 'pig']

 

import bisect

def grade(score, breakpoints = [60, 70, 80, 90], grades = 'FDCBA'):
    i = bisect.bisect(breakpoints, score)
    return grades[i]

grade(66) #D
grade(99) #A

 

posted on 2017-02-27 09:03  jzm17173  阅读(335)  评论(0编辑  收藏  举报

导航

轻音