关于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 相关文章推荐
用C++封装MySQL的API的教程
May 06 Python
pandas数据清洗,排序,索引设置,数据选取方法
May 18 Python
Python使用pickle模块储存对象操作示例
Aug 15 Python
python正则表达式匹配[]中间为任意字符的实例
Dec 25 Python
python接口调用已训练好的caffe模型测试分类方法
Aug 26 Python
python实现IOU计算案例
Apr 12 Python
Python调用REST API接口的几种方式汇总
Oct 19 Python
python和C++共享内存传输图像的示例
Oct 27 Python
浅谈pytorch中stack和cat的及to_tensor的坑
May 20 Python
Python中的xlrd模块使用整理
Jun 15 Python
请求模块urllib之PYTHON爬虫的基本使用
Apr 08 Python
Python中requests库的用法详解
Jun 05 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/03/04 星际争霸
ThinkPHP的RBAC(基于角色权限控制)深入解析
2013/06/17 PHP
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
2014/01/30 PHP
PHP编程获取各个时间段具体时间的方法
2017/05/26 PHP
PHP实现更改hosts文件的方法示例
2017/08/08 PHP
windows 2008r2+php5.6.28环境搭建详细过程
2019/06/18 PHP
解决AJAX中跨域访问出现'没有权限'的错误
2008/08/20 Javascript
jquery select操作的日期联动实现代码
2009/12/06 Javascript
javascript复制对象使用说明
2011/06/28 Javascript
js sort 二维数组排序的用法小结
2014/01/24 Javascript
Nodejs学习笔记之Stream模块
2015/01/13 NodeJs
JS长整型精度问题实例分析
2015/01/13 Javascript
jQuery实现图片轮播特效代码分享
2015/09/15 Javascript
Bootstrap每天必学之附加导航(Affix)插件
2016/04/25 Javascript
关于安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法
2016/05/17 Javascript
js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前
2017/04/27 Javascript
vue.js路由跳转详解
2017/08/28 Javascript
vue-quill-editor+plupload富文本编辑器实例详解
2018/10/19 Javascript
JS/HTML5游戏常用算法之碰撞检测 像素检测算法实例详解
2018/12/12 Javascript
如何在Vue中抽离接口配置文件
2019/10/31 Javascript
使用axios发送post请求,将JSON数据改为form类型的示例
2019/10/31 Javascript
python进程管理工具supervisor使用实例
2014/09/17 Python
python基础之入门必看操作
2017/07/26 Python
Python排序算法实例代码
2017/08/10 Python
用 Python 连接 MySQL 的几种方式详解
2018/04/04 Python
python删除本地夹里重复文件的方法
2020/11/19 Python
Python操作Excel插入删除行的方法
2018/12/10 Python
PyQt5 QTable插入图片并动态更新的实例
2019/06/18 Python
Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】
2019/10/11 Python
python从zip中删除指定后缀文件(推荐)
2019/12/05 Python
自动化专业毕业生自荐信
2013/11/01 职场文书
化工机械应届生求职信
2013/11/04 职场文书
小区停车场管理制度
2014/01/27 职场文书
学习保证书100字
2015/02/26 职场文书
css position fixed 左右双定位的实现代码
2021/04/29 HTML / CSS
关于windows server 2012 DC 环境 重启后蓝屏代码:0xc00002e2的问题
2022/05/25 Servers