python学习笔记之SortedList

本文介绍了Python的sortedcontainers库中的SortedList类,详细阐述了如何创建和使用SortedList对象,包括默认排序规则和自定义排序方法。通过示例展示了按数值大小和字符串长度进行排序的操作,并探讨了其内部实现机制,利用bisect方法确保插入时保持排序状态。
摘要由CSDN通过智能技术生成

分享一下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
  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值