python的内置库bisect

107 阅读1分钟
import bisect

# 查找。查找元素在有序数组的位置
a = [1, 3, 4, 5, 7, 12, 33, 46]
position = bisect.bisect(a,22)
print('position:',position) # position: 6

a.insert(position,22)
print('a:',a) # a: [1, 3, 4, 5, 7, 12, 22, 33, 46]
import bisect
b = [1, 3, 4, 5, 7, 12, 33, 46]
bisect.insort(b,22)
print('b:',b)  # b: [1, 3, 4, 5, 7, 12, 22, 33, 46]

bisect还有bisect_left,insort_left的用法,和不带left的用法的区别是:当插入的元素和序列中的某一个元素相同时,该插入到该元素左边还是右边;如果是查找,则返回该元素的位置还是该元素之后的位置