Python-维护排序好的序列模块-bisect
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))