bisect.bisect_left(a, x, lo=0, hi=len(a), *, key=None)
在列表a的[lo,hi)子集块中查找第一个大于等于x的下标
参数 lo 和 hi 可以被用于确定需要考虑的子集;默认情况下整个列表都会被使用。如果 x 已经在 a 里存在,那么插入点会在已存在元素之前(也就是左边)。如果 a 是列表(list)的话,返回值是可以被放在 list.insert() 的第一个参数的。
返回的插入点 i 将数组 a 分成两半,使得 all(val < x for val in a[lo : i]) 在左半边而 all(val >= x for val in a[i : hi]) 在右半边。
key 指定带有单个参数的 key function 用来从数组的每个元素中提取比较键。 为了支持搜索复杂记录,键函数不会被应用到 x 值。
如果 key 为 None,则将直接进行元素比较而不需要中间的函数调用。
bisect.bisect_right(a, x, lo=0, hi=len(a), *, key=None)
在列表a的[lo,hi)子集块中查找第一个大于x的下标
bisect.bisect(a, x, lo=0, hi=len(a), *, key=None)
类似于 bisect_left(),但是返回的插入点是 a 中已存在元素 x 的右侧。
返回的插入点 i 将数组 a 分成两半,使得左半边为 all(val <= x for val in a[lo : i]) 而右半边为 all(val > x for val in a[i : hi])。
key 指定带有单个参数的 key function 用来从数组的每个元素中提取比较键。 为了支持搜索复杂记录,键函数不会被应用到 x 值。
如果 key 为 None,则将直接进行元素比较而不需要中间的函数调用。
参考python官网:https://docs.python.org/zh-cn/3/library/bisect.html