关于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中列表(list)操作方法汇总
Aug 18 Python
python Socket之客户端和服务端握手详解
Sep 18 Python
Python爬虫实例爬取网站搞笑段子
Nov 08 Python
Python 窗体(tkinter)按钮 位置实例
Jun 13 Python
python常用库之NumPy和sklearn入门
Jul 11 Python
在python中实现求输出1-3+5-7+9-......101的和
Apr 02 Python
python实现与redis交互操作详解
Apr 21 Python
django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例
May 12 Python
django filter过滤器实现显示某个类型指定字段不同值方式
Jul 16 Python
一个非常简单好用的Python图形界面库(PysimpleGUI)
Dec 28 Python
selenium+headless chrome爬虫的实现示例
Jan 08 Python
python实现控制台输出颜色
Mar 02 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的面试题集,附我的答案和分析(一)
2006/11/19 PHP
php中CI操作多个数据库的代码
2012/07/05 PHP
基于Zookeeper的使用详解
2013/05/02 PHP
解析php中反射的应用
2013/06/18 PHP
ThinkPHP中自定义目录结构的设置方法
2014/08/15 PHP
在SAE上搭建最新wordpress的方法
2014/12/21 PHP
PHP中抽象类、接口的区别与选择分析
2016/03/29 PHP
PHP操作Redis常用命令的实例详解
2020/12/23 PHP
修改发贴的编辑功能
2007/03/07 Javascript
js 页面输出值
2008/11/30 Javascript
AngularJS + Node.js + MongoDB开发的基于高德地图位置的通讯录
2015/01/02 Javascript
js面向对象之静态方法和静态属性实例分析
2015/01/10 Javascript
jQuery实现仿新浪微博浮动的消息提示框(可智能定位)
2015/10/10 Javascript
Javascript实现页面滚动时导航智能定位
2017/05/06 Javascript
iscroll-probe实现下拉刷新和下拉加载效果
2017/06/28 Javascript
vue动态绑定class选中当前列表变色的方法示例
2018/12/19 Javascript
node.js监听文件变化的实现方法
2019/04/17 Javascript
如何根据业务封装自己的功能组件
2019/04/19 Javascript
javascript实现5秒倒计时并跳转功能
2019/06/20 Javascript
nodejs的安装使用与npm的介绍
2019/09/11 NodeJs
解决echarts数据二次渲染不成功的问题
2020/07/20 Javascript
python网页请求urllib2模块简单封装代码
2014/02/07 Python
Python中的ctime()方法使用教程
2015/05/22 Python
python enumerate函数的使用方法总结
2017/11/15 Python
Python3使用pandas模块读写excel操作示例
2018/07/03 Python
django中间键重定向实例方法
2019/11/10 Python
python-OpenCV 实现将数组转换成灰度图和彩图
2020/01/09 Python
Canvas与Image互相转换示例代码
2013/08/09 HTML / CSS
家具厂厂长岗位职责
2014/01/01 职场文书
人事专员职责
2014/02/22 职场文书
纪律教育学习心得体会
2014/09/02 职场文书
教师师德工作总结2015
2015/07/22 职场文书
北京大学中文系教授推荐的10本小说
2019/08/08 职场文书
JavaScript 实现页面滚动动画
2021/04/24 Javascript
详解ZABBIX监控ESXI主机的问题
2022/06/21 Servers
Oracle中日期的使用方法实例
2022/07/07 Oracle