bisect库是python中针对有序列表的一个模块,接收已排序列表作为参数。
一.函数介绍
————1 2 查询
1. bisect.bisect(a,x)(默认等同于bisect.bisect_right())
参数:
a——已排序的列表
x——要插入的元素
返回值:
返回x在a中会被顺序插入的位置。若a中已有一个或多个x,返回的位置在最后一个x之后。
2. bisect.bisect_left(a,x)
参数:
a——已排序的列表
x——要插入的元素
返回值:
返回x在a中会被顺序插入的位置。若a中已有一个或多个x,返回的位置在第一个x之前。
————3 4 5 插入
3. bisect.insort(a,x)
参数:
a——已排序的列表
x——要插入的元素
返回值:
None
功能:
在a中上述对应函数会返回的位置插入x。
4. bisect.insort_right(a,x)
参数:
a——已排序的列表
x——要插入的元素
返回值:
None
5. bisect.insort_left(a,x)
参数:
a——已排序的列表
x——要插入的元素
返回值:
None
二. 举例
import bisect
#插入元素在找到的位置下标右边
ls1 = [1,4,6,8,12,13,15]
position1 = bisect.bisect_right(ls1,13)
ls1.insert(position1,13)
print("插入元素的位置下标为:",end = '')
print(position1) #6
print(ls1) #[1, 4, 6, 8, 12, 13, 13, 15]
print()
#插入元素在找到的位置下标左边
ls2 = [1,4,6,8,12,13,15]
position2 = bisect.bisect_left(ls2,13)
ls2.insert(position2,13)
print("插入元素的位置下标为:",end = '')
print(position2) #5
print(ls2) #[1, 4, 6, 8, 12, 13, 13, 15]
print()
#使用insort()函数
ls3 = [1,4,6,8,12,13,15]
bisect.insort(ls3,13)
print(ls3)
结果:
插入元素的位置下标为:6
[1, 4, 6, 8, 12, 13, 13, 15]
插入元素的位置下标为:5
[1, 4, 6, 8, 12, 13, 13, 15]
[1, 4, 6, 8, 12, 13, 13, 15]