前提:
操作的列表是已排序的
魔术方法
In [2]: dir(bisect)
[
'__builtins__',
'__doc__',
'__file__',
'__name__',
'__package__',
'bisect', # 返回将会插入的位置,默认最右边的
'bisect_left', # 返回将会插入的位置,如果有相同元素返回最左边的
'bisect_right', # 返回将会插入的位置,如果有相同元素返回最右边的
'insort', # 插入元素
'insort_left', # 插入元素,如果有相同元素在左边插入
'insort_right' # 插入元素,如果有相同元素在右边插入
]
返回插入元素下标
In [9]: data
Out[9]: [2, 3, 3, 4, 7, 9]
In [10]: bisect.bisect(data,3) # 默认最右边
Out[10]: 3
In [11]: bisect.bisect_left(data,3) # 返回将会插入的位置,如果有相同元素返回最左边的
Out[11]: 1
In [12]: bisect.bisect_right(data,3) # 返回将会插入的位置,如果有相同元素返回最右边的
Out[12]: 3
插入元素
In [5]: data
Out[5]: [2, 3, 4, 7, 9]
In [6]: bisect.insort_left(data,3) # 插入元素,如果有相同元素在左边插入
In [7]: data
Out[7]: [2, 3, 3, 4, 7, 9]
In [6]: bisect.insort_right(data,3) # 插入元素,如果有相同元素在右边插入
In [7]: data
Out[7]: [2, 3, 3, 3, 4, 7, 9]
本文地址:https://blog.csdn.net/weixin_43692357/article/details/107286742