分享一下python中一个专门提供排序的库 sortedcontainers。该库提供了三个有用的类:SortedList、SortedDict、SortedSet。这里主要讲讲SortedList的操作。
官网:http://www.grantjenks.com/docs/sortedcontainers/sortedlist.html
我们可以通过以下方式声明一个SortedList对象,输出时发现里面的值已经排好序了。
from sortedcontainers import SortedList
test_sl = SortedList([3,5,1,2,7,6,4])
print(test_sl)
output: SortedList([1, 2, 3, 4, 5, 6, 7])
下面是一些常见的操作
test_sl.add(2) #添加元素
test_sl.add(8)
test_sl.add(1)
print(test_sl)
test_sl.remove(4) #删除元素 元素不存在时会报错
test_sl.discard(1) #删除元素 元素不存在时不会报错
print(test_sl)
test_sl.pop() #移除最后一个元素
print(test_sl)
pos_left = test_sl.bisect_left(2) #查找元素存在的位置
pos_right = test_sl.bisect_left(2)
print(pos_left, pos_right)
num = test_sl.count(2) #计数
print(num)
ind = test_sl.index(2) #返回第一次出现的下标
print(ind