bisect---一个非常好用的Python内置模块
2019-04-18 本文已影响0人
LuDon
bisect 是Python的一个排序模块。
>>> import bisect
>>> dir(bisect)
['__builtins__',
'__cached__',
'__doc__',
'__file__',
'__loader__',
'__name__',
'__package__',
'__spec__',
'bisect',
'bisect_left',
'bisect_right',
'insort',
'insort_left',
'insort_right']
可见bisect一共有6个内置函数,分为两类一类为查找,一类为插入。
>>> data = [4, 3, 8, 7, 9]
>>> data.sort()
>>> data
[3, 4, 7, 8, 9]
# insort
>>> bisect.insort(data, 3)
>>> data
[3, 3, 4, 7, 8, 9]
# bisect 返回要插入的位置
>>> bisect.bisect(data, 2)
0
# bisect_left和bisect_right
>>> bisect.bisect_left(data, 3)
0
>>>bisect.bisect_right(data, 3)
# insort_left和insort_right
>>> bisect.insort_left(data, 4)
>>> data
[3, 3, 4, 4, 7, 8, 9]
>>> bisect.insort_right(data, 4)
>>> data
[3, 3, 4, 4, 4, 7, 8, 9]