关于python类SortedList详解


Posted in Python onSeptember 04, 2021

SortedList 有序序列

class sortedcontainers.SortedList(iterable=None, key=None)

方法

1.添加值

  • SortedList.add(value) 添加新元素,并排序。时间复杂度O(log(n)).
  • SortedList.update(iterable) 对添加的可迭代的所有元素排序。时间复杂度O(k*log(n)).

2.移除值

  • SortedList.clear() 移除所有元素。时间复杂度O(n).
  • SortedList.discard(value) 移除一个值元素,如果元素不存在,不报错。时间复杂度O(log(n)).
  • SortedList.remove(value) 移除一个值元素,如果元素不存在,报错ValueError。时间复杂度O(log(n)).
  • SortedList.pop(index=-1) 移除一个指定下标元素,如果有序序列为空或者下标超限,报错IndexError. 时间复杂度O(log(n

3.查找

  • SortedList.bisect_left(value) 查找元素可以插入的位置下标,如果这个value已经存在,则插入已经存在的所有values之前(左侧).时间复杂度O(log(n)).
s = SortedList([1,2,3,9,8,6,5,5,5,5,5])
s.bisect_left(5)
Out[5]: 3
s
Out[6]: SortedList([1, 2, 3, 5, 5, 5, 5, 5, 6, 8, 9])
  • SortedList.bisect_right(value) 查找元素可以插入的位置下标,如果这个value已经存在,则插入已经存在的所有values之后(右侧)。时间复杂度O(log(n)).
s.bisect_right(5)
Out[7]: 8
s
Out[8]: SortedList([1, 2, 3, 5, 5, 5, 5, 5, 6, 8, 9])
  • SortedList.count(value) 查找元素出现的次数。时间复杂度O(log(n)).
s.count(5)
Out[9]: 5
  • SortedList.index(value, start=None, Stop=None) 查找索引范围[start,stop)内第一次出现value的索引,如果value不存在,报错ValueError. 时间复杂度O(log(n)).

4.迭代值

  • SortedList.irange(minimun=None, maximum=None, inclusive=True, True, reverse=False) 返回value=[minimun,maximum]之间的可迭代值,inclusive = Ture, True 第一个True表示包括索引minimun, 第二个Ture表示包括索引maximum,reverse是表示返回的可迭代值是否反转。
  • SortedList.islice(start=None, stop=None, reverse=False) 返回index=[start, stop)之间的可迭代值(切片)。

5. 其他

  • SortedList.copy() 返回一个浅拷贝有序序列。时间复杂度O(n)。

浅拷贝(1)直接赋值,默认浅拷贝传递对象的引用而已,原始列表改变,被赋值的列表也会做相同的改变。

a = [1,2,3]
b=a
b
Out[60]: [1, 2, 3]
a[0]=0
a
Out[62]: [0, 2, 3]
b
Out[63]: [0, 2, 3]

浅拷贝(2)copy函数,浅拷贝传递对象的引用,原始数据改变,只有子对象会改变。

a = [[1],2,3]
b = a.copy()
a
Out[85]: [[1], 2, 3]
b
Out[86]: [[1], 2, 3]
# 对象不改变
a.append(4)
a
Out[88]: [[1], 2, 3, 4]
b
Out[89]: [[1], 2, 3]
# 子对象跟着改变
a[0].append(2)
a
Out[91]: [[1, 2], 2, 3, 4]
b
Out[92]: [[1, 2], 2, 3]

关于python类SortedList详解

以上就是关于python类SortedList详解的详细内容,更多关于python类SortedList详解的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python实现的重启关机程序实例
Aug 21 Python
简单的Python抓taobao图片爬虫
Oct 26 Python
python 类对象和实例对象动态添加方法(分享)
Dec 31 Python
python实现textrank关键词提取
Jun 22 Python
对Python正则匹配IP、Url、Mail的方法详解
Dec 25 Python
python 实现图片旋转 上下左右 180度旋转的示例
Jan 24 Python
python使用参数对嵌套字典进行取值的方法
Apr 26 Python
Python函数和模块的使用总结
May 20 Python
TensorFlow基本的常量、变量和运算操作详解
Feb 03 Python
快速查找Python安装路径方法
Feb 06 Python
Django 用户认证Auth组件的使用
Nov 30 Python
Python字典和列表性能之间的比较
Jun 07 Python
Python3.8官网文档之类的基础语法阅读
Sep 04 #Python
python实现Nao机器人的单目测距
Sep 04 #Python
python读取mnist数据集方法案例详解
Sep 04 #Python
Pyqt5将多个类组合在一个界面显示的完整示例
Sep 04 #Python
一小时学会TensorFlow2之基本操作2实例代码
Python torch.flatten()函数案例详解
Aug 30 #Python
Python之基础函数案例详解
Aug 30 #Python
You might like
PHP实现图片上传并压缩
2015/12/22 PHP
基于php+MySql实现学生信息管理系统实例
2020/08/04 PHP
ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法
2010/06/12 Javascript
Jquery从头学起第四讲 jquery入门教程
2010/08/01 Javascript
JavaScript输入邮箱自动提示实例代码
2014/01/13 Javascript
javascript 获取网页标题代码实例
2014/01/22 Javascript
from表单多个按钮提交用onclick跳转不同action
2014/04/24 Javascript
JS控制输入框内字符串长度
2014/05/21 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
2014/10/17 Javascript
jquery实现的判断倒计时是否结束代码
2016/02/05 Javascript
Bootstrap自定义文件上传下载样式
2016/05/26 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
2016/06/09 Javascript
Angular工具方法学习
2016/12/26 Javascript
如何制作一个Node命令行图像识别工具
2018/12/12 Javascript
JS使用栈判断给定字符串是否是回文算法示例
2019/03/04 Javascript
JavaScript工具库之Lodash详解
2019/06/15 Javascript
[48:20]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
用smtplib和email封装python发送邮件模块类分享
2014/02/17 Python
利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程
2015/05/05 Python
使用Python内置的模块与函数进行不同进制的数的转换
2016/03/12 Python
python中文分词教程之前向最大正向匹配算法详解
2017/11/02 Python
Python绘制堆叠柱状图的实例
2019/07/09 Python
浅谈Python中的字符串
2020/06/10 Python
Python用户自定义异常的实现
2020/12/25 Python
有关HTML5页面在iPhoneX适配问题
2017/11/13 HTML / CSS
意大利消费电子产品购物网站:SLG Store
2019/12/26 全球购物
拉飞逸官网:Lafayette 148 New York
2020/07/15 全球购物
简短证婚人证婚词
2014/01/09 职场文书
给学校的建议书
2014/03/12 职场文书
实习生评语
2014/04/26 职场文书
大学生考试作弊被抓检讨书
2014/12/27 职场文书
环保建议书作文300字
2015/09/14 职场文书
2016年秋季运动会广播稿
2015/12/21 职场文书
如何利用Matlab制作一款真正的拼图小游戏
2021/05/11 Python
Python数据分析之pandas读取数据
2021/06/02 Python
微信小程序纯CSS实现无限弹幕滚动效果
2022/09/23 HTML / CSS