python标准库学习—bisect模块
bisect模块可以使列表保持已排好的顺序,使用二分算法。bisect(list,item,]) 返回要插入item点的索引,如果item在列表中了,则返回该条目的右边索引
bisect_right(list,iten,]) 同上
bisect_left(list,iten,]) 返回要插入item点的索引,如果item在列表中了,则返回该条目的左边索引
insort(list,item,]) 不返回索引,直接插入进去,如果有重复的item,则插入到右边
insort_right(list,item,]) 同上
insort_left(list,item,]) 不返回索引,直接插入进去,如果有重复的item,则插入到左边
下面是整个模块在linux python2.6版本的源码:
"""Bisection algorithms."""
def insort_right(a, x, lo=0, hi=None):
"""Insert item x in list a, and keep it sorted assuming a is sorted.
If x is already in a, insert it to the right of the rightmost x.
Optional args lo (default 0) and hi (default len(a)) bound the
slice of a to be searched.
"""
if lo
页:
[1]