编程语言
首页 > 编程语言> > Python-算法扩展:bisect模块

Python-算法扩展:bisect模块

作者:互联网

Python-算法扩展:bisect模块

Python bisect模块用于有序列表的插值

>>返回Python系列文章目录<<

1 bisect模块(内置库)

bisect模块实现了 二分 (bisection) 算法 的模块,能够 保持序列 sequence 顺序不变 的情况下对其进行 二分查找和插入,适合用于降低对冗长序列查找的时间成本

左侧插入点:元素elem在序列sequence合适的插入点,如果序列中已存在,则放在相同元素的左侧

右侧插入点:元素elem在序列sequence合适的插入点,如果序列中已存在,则放在相同元素的右侧

bisect模块说明
bisect_left(sequence, elem)-> index返回elem在sequence中左侧插入点的index
bisect_right(sequence, elem)-> index返回elem在sequence中右侧插入点的index
bisect()bisect_right()
insort_left(sequence, elem)-> index查找目标元素左侧插入点,并插入元素,直接修改原序列
insort_right(sequence, elem)-> index查找目标元素右侧插入点,并插入元素,直接修改原序列
insort()insort_right()

1.1 示例:按成绩评分


from bisect import *

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

ret = [grade(score) for score in [33, 99, 77, 70, 89, 90, 100]]  # 列表解析式 按成绩划分等级

>>>['F', 'A', 'C', 'C', 'B', 'A', 'A']

标签:插入,Python,sequence,elem,bisect,模块,序列
来源: https://blog.csdn.net/u011079613/article/details/122522733