关于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常用列表数据结构小结
Aug 06 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
Apr 11 Python
Python基于Socket实现的简单聊天程序示例
Aug 05 Python
python实现BackPropagation算法
Dec 14 Python
使用C++扩展Python的功能详解
Jan 12 Python
python 爬虫 批量获取代理ip的实例代码
May 22 Python
Django使用paginator插件实现翻页功能的实例
Oct 24 Python
PyCharm安装Markdown插件的两种方法
Jun 24 Python
pip 安装库比较慢的解决方法(国内镜像)
Oct 06 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
Dec 04 Python
python接口自动化之ConfigParser配置文件的使用详解
Aug 03 Python
python使用pymysql模块操作MySQL
Jun 16 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/10/09 PHP
php计算十二星座的函数代码
2012/08/21 PHP
深入理解php的MySQL连接类
2013/06/07 PHP
PHP获取当前页面完整URL的实现代码
2013/06/10 PHP
Linux下php5.4启动脚本
2014/08/03 PHP
原生php实现excel文件读写的方法分析
2018/04/25 PHP
jQuery 回车事件enter使用示例
2014/02/18 Javascript
JavaScript编写推箱子游戏
2015/07/07 Javascript
简介alert()与console.log()的不同
2015/08/26 Javascript
基于jQuery实现Div窗口震动特效代码-代码简单
2015/08/28 Javascript
分享javascript计算时间差的示例代码
2020/03/19 Javascript
Node.js的基本知识简单汇总
2016/09/19 Javascript
JavaScript严格模式详解
2017/01/16 Javascript
详解react如何在组件中获取路由参数
2017/06/15 Javascript
react高阶组件经典应用之权限控制详解
2017/09/07 Javascript
vue使用vue-i18n实现国际化的实现代码
2018/04/08 Javascript
Vue slot用法(小结)
2018/10/22 Javascript
Vue CLI 2.x搭建vue(目录最全分析)
2019/02/27 Javascript
Vue插槽原理与用法详解
2019/03/05 Javascript
vue中的 $slot 获取插槽的节点实例
2019/11/12 Javascript
[02:38]DOTA2 夜魇暗潮2020活动介绍官方视频
2020/11/04 DOTA
Python3编程实现获取阿里云ECS实例及监控的方法
2017/08/18 Python
利用Python如何批量修改数据库执行Sql文件
2018/07/29 Python
python利用7z批量解压rar的实现
2019/08/07 Python
通过实例了解python property属性
2019/11/01 Python
python实现一个猜拳游戏
2020/04/05 Python
HTMl5的存储方式sessionStorage和localStorage详解
2014/03/18 HTML / CSS
HTML5在线预览PDF的示例代码
2017/09/14 HTML / CSS
陈欧的广告词
2014/03/18 职场文书
应聘销售主管的求职信
2014/04/26 职场文书
区级文明单位申报材料
2014/05/15 职场文书
小学生志愿者活动方案
2014/08/23 职场文书
司法工作人员群众路线对照检查材料思想汇报
2014/09/30 职场文书
班主任开场白
2015/06/01 职场文书
CSS3常见动画的实现方式
2021/04/14 HTML / CSS
Python正则表达式中flags参数的实例详解
2022/04/01 Python