bisect模块
bisect模块主要由两个函数,bisect
和insort
。
-
bisect(haystack,needle)
:返回needle插入有序列表中的位置。
import bisect
ls = [1,2,3,4,5,6,8,9,15]
index = bisect.bisect(ls,7)
index
Out[5]: 6
-
insort(haystack, needle)
:返回needle插入有序列表后的列表,就地插入。
import bisect
ls = [1, 2, 3, 4, 5, 6, 7, 8, 9, 15]
bisect.insort(ls,11)
#输出:ls = [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 15]
bisect
函数实际是bisect_right
的别名,如果插入的元素和有序列表中的原元素相等,则返回原元素后面的位置;bisect_left
和前者相反,如果相等返回原元素前面的位置。
同样insort(seq,item)
也有insort_right
和insort_left
之分。