关于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显示进度条的方法
Sep 20 Python
Python实现大文件排序的方法
Jul 10 Python
Python实现优先级队列结构的方法详解
Jun 02 Python
go和python变量赋值遇到的一个问题
Aug 31 Python
Python使用修饰器执行函数的参数检查功能示例
Sep 26 Python
python爬虫爬取淘宝商品信息
Feb 23 Python
python2.7+selenium2实现淘宝滑块自动认证功能
Feb 24 Python
了解不常见但是实用的Python技巧
May 23 Python
关于django 1.10 CSRF验证失败的解决方法
Aug 31 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
Feb 10 Python
使用npy转image图像并保存的实例
Jul 01 Python
Python创建SQL数据库流程逐步讲解
Sep 23 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 星际争霸
php获取post中的json数据的实现方法
2011/06/08 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
2013/07/19 PHP
PHP常见的6个错误提示及解决方法
2016/07/07 PHP
php cli模式下获取参数的方法
2017/05/05 PHP
js 跨域和ajax 跨域问题小结
2009/07/01 Javascript
Js sort排序使用方法
2011/10/17 Javascript
基于jquery的多功能软键盘插件
2012/07/25 Javascript
IE关闭时判断及AJAX注销案例学习
2013/02/18 Javascript
使用javascript实现ListBox左右全选,单选,多选,全请
2013/11/07 Javascript
使用javascript实现json数据以csv格式下载
2015/01/09 Javascript
JavaScript中判断函数、变量是否存在
2015/06/10 Javascript
jQuery实现ctrl+enter(回车)提交表单
2015/10/19 Javascript
完美实现bootstrap分页查询
2015/12/09 Javascript
jQuery代码实现图片墙自动+手动淡入淡出切换效果
2016/05/09 Javascript
浅析Ajax语法
2016/12/05 Javascript
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
2017/09/22 jQuery
解决Mac安装thrift因bison报错的问题
2018/05/17 Javascript
微信小程序利用Canvas绘制图片和竖排文字详解
2019/06/25 Javascript
turn.js异步加载实现翻书效果
2019/07/25 Javascript
关于在LayUI中使用AJAX提交巨坑记录
2019/10/25 Javascript
js实现动态时钟
2020/03/12 Javascript
vue中配置scss全局变量的步骤
2020/12/28 Vue.js
[22:59]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
简单介绍Python中的JSON模块
2015/04/08 Python
基于python yield机制的异步操作同步化编程模型
2016/03/18 Python
使用PyV8在Python爬虫中执行js代码
2017/02/16 Python
对numpy中二进制格式的数据存储与读取方法详解
2018/11/01 Python
详解Python中打乱列表顺序random.shuffle()的使用方法
2019/11/11 Python
Python属性和内建属性实例解析
2020/01/14 Python
周生生珠宝香港官网:Chow Sang Sang(香港及海外配送)
2019/09/05 全球购物
波兰汽车配件网上商店:iParts.pl
2020/09/08 全球购物
代理商会议邀请函
2014/01/27 职场文书
门店业绩提升方案
2014/06/08 职场文书
土地租赁协议书
2015/01/29 职场文书
同学聚会邀请函
2015/01/30 职场文书