关于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 相关文章推荐
简单介绍利用TK在Python下进行GUI编程的教程
Apr 13 Python
归纳整理Python中的控制流语句的知识点
Apr 14 Python
Python基于Matplotlib库简单绘制折线图的方法示例
Aug 14 Python
在django admin中添加自定义视图的例子
Jul 26 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
Aug 07 Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
Dec 18 Python
Python3+Selenium+Chrome实现自动填写WPS表单
Feb 12 Python
jupyter notebook实现显示行号
Apr 13 Python
Python数据正态性检验实现过程
Apr 18 Python
Python3爬虫中Selenium的用法详解
Jul 10 Python
Python TestSuite生成测试报告过程解析
Jul 23 Python
Python万能模板案例之matplotlib绘制甘特图
Apr 13 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 Sql Server连接失败问题及解决办法
2009/08/07 PHP
PHP session会话的安全性分析
2011/09/08 PHP
php上传apk后自动提取apk包信息的使用(示例下载)
2013/04/26 PHP
PHP写的加密函数,支持私人密钥(详细介绍)
2013/06/09 PHP
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
2014/05/04 PHP
PHP制作万年历
2015/01/07 PHP
PHP中数据类型转换的三种方式
2015/04/02 PHP
使用GruntJS构建Web程序之合并压缩篇
2014/06/06 Javascript
浅谈jQuery中对象遍历.eq().first().last().slice()方法
2014/11/26 Javascript
JS获取时间的方法
2015/01/21 Javascript
第一次接触神奇的Bootstrap基础排版
2016/07/26 Javascript
深入学习Bootstrap表单
2016/12/13 Javascript
浅谈原生JS中的延迟脚本和异步脚本
2017/07/12 Javascript
vue-cli如何引入bootstrap工具的方法
2017/10/19 Javascript
nodejs实现截取上传视频中一帧作为预览图片
2017/12/10 NodeJs
vue计算属性computed的使用方法示例
2019/03/13 Javascript
javascript设计模式 ? 抽象工厂模式原理与应用实例分析
2020/04/09 Javascript
vue iview实现动态新增和删除
2020/06/17 Javascript
[00:27]DOTA2荣耀之路2:Patience from zhou!
2018/05/24 DOTA
python使用PythonMagick将jpg图片转换成ico图片的方法
2015/03/26 Python
Python实现全角半角字符互转的方法
2016/11/28 Python
windows下 兼容Python2和Python3的解决方法
2018/12/05 Python
python使用matplotlib画柱状图、散点图
2019/03/18 Python
Python3.5以上版本lxml导入etree报错的解决方案
2019/06/26 Python
使用Python做垃圾分类的原理及实例代码附源码
2019/07/02 Python
numpy中三维数组中加入元素后的位置详解
2019/11/28 Python
机械系大学毕业生推荐信
2013/11/27 职场文书
公司爱心捐款倡议书
2014/05/14 职场文书
授权委托书范文
2014/07/31 职场文书
发展党员工作情况汇报
2014/10/28 职场文书
部队个人年终总结
2015/03/02 职场文书
2015年世界无烟日活动方案
2015/05/04 职场文书
2015年外贸业务员工作总结范文
2015/05/23 职场文书
2015年大学迎新晚会总结
2015/07/16 职场文书
浅谈PostgreSQL表分区的三种方式
2021/06/29 PostgreSQL
关于maven依赖 ${xxx.version}报错问题
2022/01/18 Java/Android