python内置模块bisect,用于有序序列的插入和查找。
- 查找: bisect(array, item)
- 插入: insort(array,item)
import bisect
a = [1,4,6,8,12,15,20]
position = bisect.bisect(a,13)
print(position) # 5
a.insert(position,13)
print(a)
# 等价于
bisect.insort(a,13)
- bisect_left:当插入的元素和序列中的某一个元素相同时,该插入到该元素的前面(左边,left),还是后面(右边);
- insort_left:如果是查找,则返回该元素的位置还是该元素之后的位置。