bisect模块
处理已经排序的序列,升序,从小到大,分插入数据和查看插入数据的位置两大核心,类似于插入排序算法
插入数据
# 首先这个序列按升序规则已经排序好的
# 查找规则是二分查找,当数据相等的时候又分为插入左边或右边
import bisect
score = []
# 二分查找插入排序好的序列,升序,从小到大
# 维护已经排好序的列表,默认右边,本身必须是可修改序列类型
bisect.insort(score, 30)
# 插入相同数据的右边
bisect.insort_right(score, 30)
bisect.insort(score, 4)
bisect.insort(score, 26)
print(score)
# 未排序好,则不符合前提条件
name = [3, 6, 4, 7, 9, 8]
bisect.insort(name, 4)
print(name)
查询插入位置
# 找到插入的位置,默认是右边
score = [1, 2, 3, 4, 5]
# 输入插入的位置,相同则分为左边或右边插入位置,默认右边
print(bisect.bisect(score, 4))
print(bisect.bisect_left(score, 4))