关于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实现删除当前目录下除当前脚本以外的文件和文件夹实例
Jul 27 Python
Python爬虫:通过关键字爬取百度图片
Feb 17 Python
pandas 对series和dataframe进行排序的实例
Jun 09 Python
详解python中sort排序使用
Mar 23 Python
django 文件上传功能的相关实例代码(简单易懂)
Jan 22 Python
对Python中 \r, \n, \r\n的彻底理解
Mar 06 Python
TensorFlow的reshape操作 tf.reshape的实现
Apr 19 Python
Python3.9 beta2版本发布了,看看这7个新的PEP都是什么
Jun 10 Python
python 读txt文件,按‘,’分割每行数据操作
Jul 05 Python
利用Python的folium包绘制城市道路图的实现示例
Aug 24 Python
Python中三维坐标空间绘制的实现
Sep 22 Python
完美处理python与anaconda环境变量的冲突问题
Apr 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 判断访客是否为搜索引擎蜘蛛的函数代码
2011/07/29 PHP
curl实现站外采集的方法和技巧
2014/01/31 PHP
3个PHP多维数组转为一维数组的方法实例
2014/03/13 PHP
php单例模式实现方法分析
2015/03/14 PHP
PHP常量及变量区别原理详解
2020/08/14 PHP
Javascript miscellanea -display data real time, using window.status
2007/01/09 Javascript
xml 与javascript结合的问题解决方法
2007/03/24 Javascript
jQuery EasyUI 中文API Button使用实例
2010/04/14 Javascript
使用js对select动态添加和删除OPTION示例代码
2013/08/12 Javascript
jquery插件之定时查询待处理任务数量
2014/05/01 Javascript
javascript判断移动端访问设备并解析对应CSS的方法
2015/02/05 Javascript
HTML5基于Tomcat 7.0实现WebSocket连接并实现简单的实时聊天
2016/10/31 Javascript
zTree获取当前节点的下一级子节点数实例
2017/09/05 Javascript
jQuery实现checkbox的简单操作
2017/11/18 jQuery
jQuery实现使用sort方法对json数据排序的方法
2018/04/17 jQuery
利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法
2019/03/29 Javascript
深入解析vue 源码目录及构建过程分析
2019/04/24 Javascript
20多个小事例带你重温ES10新特性(小结)
2019/09/29 Javascript
jQuery实现弹幕特效
2019/11/29 jQuery
在vue-cli3.0 中使用预处理器 (Sass/Less/Stylus) 配置全局变量操作
2020/08/10 Javascript
[06:16]《DAC最前线》之地区预选赛全面回顾
2015/01/19 DOTA
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
2018/02/23 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
2019/06/19 Python
Python FTP文件定时自动下载实现过程解析
2019/11/12 Python
如何在Python对Excel进行读取
2020/06/04 Python
python 实现百度网盘非会员上传超过500个文件的方法
2021/01/07 Python
CSS3中引入多种自定义字体font-face
2020/06/12 HTML / CSS
使用layui框架实现点击左侧导航切换右侧内容且右侧选项卡跟随变化的效果
2020/11/10 HTML / CSS
英国排名第一的LED灯泡网站:LED Bulbs
2019/09/03 全球购物
汽车销售求职自荐信
2013/10/01 职场文书
厕所文明标语
2014/06/11 职场文书
2015年挂职干部工作总结
2015/05/14 职场文书
结婚典礼致辞
2015/07/28 职场文书
2016年小学感恩节活动总结
2016/04/01 职场文书
Ajax请求超时与网络异常处理图文详解
2021/05/23 Javascript
MySQL实例精讲单行函数以及字符数学日期流程控制
2021/10/15 MySQL