bisect是python内置模块,用于有序序列的插入和查找。
- 查找: bisect(array, item)
- 插入: insort(array,item)
查找
import bisect a = [1,4,6,8,12,15,20] position = bisect.bisect(a,13) print(position) # 用可变序列内置的insert方法插入 a.insert(position,13) print(a)
输出:
5
[1, 4, 6, 8, 12, 13, 15, 20]
插入
使用bisect.insort,比bisect先查找该插入哪个位置,再用insert方法插入更加快速的方法
import bisect a = [1,4,6,8,12,15,20] bisect.insort(a,13) print(a)
[1, 4, 6, 8, 12, 13, 15, 20]
NOTE
bisect还有bisect_left,insort_left的用法,和不带left的用法的区别是:当插入的元素和序列中的某一个元素相同时,该插入到该元素的前面(左边,left),还是后面(右边);如果是查找,则返回该元素的位置还是该元素之后的位置。