nawawa001 发表于 2015-12-15 10:00:08

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]
查看完整版本: python标准库学习—bisect模块