关于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 相关文章推荐
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
May 17 Python
Python的Django框架中消息通知的计数器实现教程
Jun 13 Python
Python使用smtp和pop简单收发邮件完整实例
Jan 09 Python
Python常用字符串替换函数strip、replace及sub用法示例
May 21 Python
Apache,wsgi,django 程序部署配置方法详解
Jul 01 Python
Python如何使用argparse模块处理命令行参数
Dec 11 Python
python实现实时视频流播放代码实例
Jan 11 Python
使用python3 实现插入数据到mysql
Mar 02 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
Jul 18 Python
python使用matplotlib绘制折线图的示例代码
Sep 22 Python
python字符串拼接+和join的区别详解
Dec 03 Python
Python pygame实现中国象棋单机版源码
Jun 20 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版(4)
2006/10/09 PHP
cmd下运行php脚本
2008/11/25 PHP
Apache 配置详解(最好的APACHE配置教程)
2010/07/04 PHP
PHP函数microtime()用法与说明
2013/12/04 PHP
ThinkPHP中的系统常量和预定义常量集合
2014/07/01 PHP
ext读取两种结构的xml的代码
2008/11/05 Javascript
JQuery Dialog(JS 模态窗口,可拖拽的DIV)
2010/02/07 Javascript
javascript getElementsByClassName实现代码
2010/10/11 Javascript
node.js中的fs.readdir方法使用说明
2014/12/17 Javascript
jQuery中:focus选择器用法实例
2014/12/30 Javascript
jQuery替换节点元素的操作方法
2018/03/18 jQuery
垃圾回收器的相关知识点总结
2018/05/13 Javascript
Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)
2018/10/28 Javascript
JavaScript对JSON数组简单排序操作示例
2019/01/31 Javascript
Vue 动态添加路由及生成菜单的方法示例
2019/06/20 Javascript
JavaScript 反射和属性赋值实例解析
2019/10/28 Javascript
js String.prototype.trim字符去前后空格的扩展
2020/08/23 Javascript
Vue多选列表组件深入详解
2021/03/02 Vue.js
Python OpenCV处理图像之滤镜和图像运算
2018/07/10 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
2019/06/25 Python
简单了解python关系(比较)运算符
2019/07/08 Python
详细介绍Python进度条tqdm的使用
2019/07/31 Python
numpy.transpose()实现数组的转置例子
2019/12/02 Python
利用Tensorflow的队列多线程读取数据方式
2020/02/05 Python
Python 带星号(* 或 **)的函数参数详解
2021/02/23 Python
5分钟让你掌握css3阴影、倒影、渐变小技巧(小编推荐)
2016/08/15 HTML / CSS
HTML5 文件上传下载的实例代码
2017/07/03 HTML / CSS
Html5 滚动穿透的方法
2019/05/13 HTML / CSS
Stokke美国官方网店:高级儿童家具、推车、汽车座椅和配件
2020/06/06 全球购物
优秀毕业生自荐信范文
2014/01/01 职场文书
幼儿教师演讲稿
2014/05/06 职场文书
诉讼授权委托书
2014/10/15 职场文书
二婚主持词
2015/06/30 职场文书
2016年校长新年寄语
2015/08/17 职场文书
幼儿园小班开学寄语(2016秋季)
2015/12/03 职场文书
2016年优秀团员事迹材料
2016/02/25 职场文书