关于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中的变量、引用、拷贝和作用域的问题
Apr 07 Python
Python使用迭代器打印螺旋矩阵的思路及代码示例
Jul 02 Python
Face++ API实现手势识别系统设计
Nov 21 Python
PyGame贪吃蛇的实现代码示例
Nov 21 Python
python实现从本地摄像头和网络摄像头截取图片功能
Jul 11 Python
Python 实现数据结构-循环队列的操作方法
Jul 17 Python
Python搭建代理IP池实现存储IP的方法
Oct 27 Python
python filecmp.dircmp实现递归比对两个目录的方法
May 22 Python
Python word文本自动化操作实现方法解析
Nov 05 Python
利用Python+OpenCV三步去除水印
May 28 Python
Python获取指定日期是"星期几"的6种方法
Mar 13 Python
python热力图实现的完整实例
Jun 25 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
重置版游戏视频
2020/04/09 魔兽争霸
PHP面向对象教程之自定义类
2014/06/10 PHP
php计算多维数组中所有值总和的方法
2015/06/24 PHP
php数组函数array_walk用法示例
2016/05/26 PHP
PHP自定义函数获取URL中一级域名的方法
2016/08/23 PHP
php 多个变量指向同一个引用($b = &$a)用法分析
2019/11/13 PHP
fancybox1.3.1 基于Jquery的插件在IE中图片显示问题
2010/10/01 Javascript
jquery清空表单数据示例分享
2014/02/13 Javascript
jQuery.holdReady()使用方法
2014/05/20 Javascript
JS去掉字符串末尾的标点符号及删除最后一个字符的方法
2017/10/24 Javascript
js登录滑动验证的实现(不滑动无法登陆)
2018/01/03 Javascript
vue实现的组件兄弟间通信功能示例
2018/12/04 Javascript
浅谈Angular单元测试总结
2019/03/22 Javascript
Vue 实现前端权限控制的示例代码
2019/07/09 Javascript
layui 图片上传+表单提交+ Spring MVC的实例
2019/09/21 Javascript
Vue.js组件通信之自定义事件详解
2019/10/19 Javascript
vue.js 实现a标签href里添加参数
2019/11/12 Javascript
javascript实现智能手环时间显示
2020/09/18 Javascript
浅谈Vue static 静态资源路径 和 style问题
2020/11/07 Javascript
详解Python中的正则表达式的用法
2015/04/09 Python
在Python中使用第三方模块的教程
2015/04/27 Python
对Python中type打开文件的方式介绍
2018/04/28 Python
Python列表list常用内建函数实例小结
2019/10/22 Python
numpy.array 操作使用简单总结
2019/11/08 Python
opencv3/C++实现视频读取、视频写入
2019/12/11 Python
python 实现多维数组(array)排序
2020/02/28 Python
django models里数据表插入数据id自增操作
2020/07/15 Python
python如何导出微信公众号文章方法详解
2020/08/31 Python
html5+css3之CSS中的布局与Header的实现
2014/11/21 HTML / CSS
英国领先的高街书籍专家:Waterstones
2018/02/01 全球购物
传播学专业毕业生自荐信
2013/11/04 职场文书
自我评价个人范文
2013/12/16 职场文书
行政部工作岗位职责范本
2014/03/05 职场文书
教师个人自我评价
2015/03/04 职场文书
gateway网关接口请求的校验方式
2021/07/15 Java/Android
浅谈Python3中datetime不同时区转换介绍与踩坑
2021/08/02 Python