包含的功能:insort_left,
insort_right,(查找插入)
bisect_right,
bisect_left ,(查找)
在序列 a 中二分查找适合元素 x 插入的位置,保证 a 仍为 有序序列。
插入的元素位置与离左侧最近的点为准,插入到其右侧。
其中传入的参数a为可遍历的对象,x为查找对象,
lo,hi分别定义查找范围/返回索引的 上限和下限,缺省时默认对 整个 序列查找。
lo=0默认为a里面的下标为0的值,hi为None会默认为整个序列的长度。
无返回值需要打印出来。
import bisect # python内置模块
a = [2, 5, 10, 15, 18, 19]
# 查找位置(看与左侧数值最相近的位置)
position1 = bisect.bisect_right(a, 14)
position2 = bisect.bisect_right(a, 10)
print(position1)
print(position2)
bisect.bisect_right() 是为了在序列 a 中 查找 元素 x 的插入点(离左侧最近的那个点) , 那么 bisect.insort_right() 就是在找到插入点的基础上,真正地将元素 x 插入序列 a,从而改变序列 a 同时保持元素顺序。
import bisect # python内置模块
a = [2, 5, 10, 15, 18, 19]
# 查找位置
bisect.insort_right(a, 14)
print(a)
bisect.insort_right(a, 10)
print(a)
同insort_right,参数一样,只不过首先插入到序列的离右侧元素最近的位置。
同bisect_right,参数一样,只不过首先查找到序列的离右侧元素最近的位置。
包含bisect和insort
import bisect # python内置模块
a = [2, 5, 10, 15, 18, 19]
# 查找位置
position = bisect.bisect(a, 14)
bisect.insort(a, 10)
print(position)
print(a)