首页 > 编程语言 >双端队列(deque)--python

双端队列(deque)--python

时间:2024-01-25 11:56:18浏览次数:28  
标签:deque Python 删除 -- 双端 元素 python 队列

Python中的双端队列(deque)是一种特殊的数据结构,它允许在队列的两端进行插入和删除操作12。双端队列可以看成栈和队列的结合3。在Python中,我们可以使用collections模块中的deque类来创建双端队列12。

下面是一些常用的操作方法1:

Python

`from collections import deque`

# 创建一个空的双端队列
`d = deque()`

# 从右边向队列中增加元素
`d.append(n)`

# 从左边向队列中增加元素
`d.appendleft(n)`

# 清空队列
`d.clear()`

# 在队列中统计元素的个数
d.count(n)

# 从右边扩展队列
d.extend(n)

# 从左边扩展队列
d.extendleft(n)

# 从队列的右边删除元素,并且返回删除值
d.pop()

# 从队列的左边删除元素,并且返回删除值
d.popleft()

# 从队列中删除指定的值
d.remove(n)

# 翻转队列
d.reverse()

# 旋转队列,默认时值为1,由右边开始旋转,负值代表左边旋转
d.rotate(n)

双端队列的优点是在两端高效实现插入和删除操作2。双端队列支持线程安全,在双端队列的任何一端执行添加和删除操作,它们的内存效率几乎相同(时间复杂度为O(1))2。双端队列还可以设置队列的长度,使用 deque(maxlen=N) 构造函数会新建一个固定大小的队列。当新的元素加入并且这个队列已满的时候,最老的元素会自动被移除掉1。

需要注意的是,双端队列在访问中间元素的时间复杂度为O(n),速度较慢,对于快速随机的访问,还是用列表代替2。另外,双端队列不支持切片操作1。

标签:deque,Python,删除,--,双端,元素,python,队列
From: https://www.cnblogs.com/taixian/p/17986859

相关文章

  • P3355 骑士共存问题题解
    题目链接:P3355骑士共存问题-洛谷|计算机科学教育新生态(luogu.com.cn)题解:棋盘问题考虑黑白染色成为二分图后做。观察马的性质,可知一个点只能到一个异色点,所以,构造方案可以先将所有同色点放上马,再考虑有那些异色点不可以放置。方法一:网络流,时间复杂度为O(|E|min(|E|0.5......
  • bean的一生
    你曾读spring源码“不知所云”、“绞尽脑汁”、“不知所措”嘛......
  • 2024,管理企业一定要做的动作。
    2024年推行OKR对企业的好处一、背景介绍随着市场竞争的日益激烈,企业需要更加高效的目标管理方法来推动团队发展和提高业绩。OKR(ObjectivesandKeyResults)作为一种先进的目标管理工具,在许多成功企业中得到了广泛应用。本文将探讨在2024年推行OKR对企业的好处。二、提高目标一......
  • deque的rotate方法
    deque对象支持旋转操作,可以将元素向左或向右循环移动。例如:fromcollectionsimportdequedq=deque([1,2,3,4])dq.rotate(1)执行后dq变为:[4,1,2,3]元素向右移动了一位,最后一个元素到了最前面。在这个问题中,我们有一个n*n的矩阵,利用deque来表示,旋转操作可......
  • jeecg-boot 同步数据库失败,Unable to perform unmarshalling at line number 5 and co
    同步数据库失败,Unabletoperformunmarshallingatlinenumber5andcolumn6.Message:cvc-complex-type.2.4.a:Invalidcontentwasfoundstartingwithelement'{"http://www.hibernate.org/xsd/orm/hbm":property}'.Oneof'{"http://www......
  • IIS日志——统计IP访问次数的一种方法
    配置IIS网站的日志如果没有显示日志功能,到添加删除程序添加windows功能  下载进行日志分析的两个工具LogParser(命令行工具),下载地址:http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=24659LogParserStudio(图形化工具),下载地址:http://gallery.techn......
  • 支撑核心系统分布式改造,GaussDB为江南农商银行筑稳根基
    本文分享自华为云社区《支撑核心系统分布式改造,GaussDB为江南农商银行筑稳根基》,作者:华为云头条。在移动互联网快速普及的当下,金融机构能否提供便捷、智能、个性化的金融服务,成为关乎业务开展和企业成长的重要命题。高性能、高可用、高安全的数据库,则是金融服务背后的重要支撑。......
  • Vue 工程配置文件
    1package.jsonvitebuild和vite是Vite.js的两个命令。vite是一个开发服务器,它可以快速地在浏览器中启动一个开发环境,并支持热更新。使用vite命令可以启动Vite.js的开发服务器。vitebuild是一个命令行工具,它可以将Vite.js项目打包成生产环境的代码。使用vitebu......
  • SQLServer 导入 Excel 表数据报错“文本被截断。。。”
    报错详情(关键信息就是:文本被截断)错误0xc020901c:数据流任务1:输出“Excel源输出”(9)上的输出列“xxxxx”(78)出错。返回的列状态是:“文本被截断,或者一个或多个字符在目标代码页中没有匹配项。”。注:其中,‘xxxxx’代表的是列名,数字‘78’代表的是行序。报错原因文本......
  • 通达信牛筹码主图指标 超短筹 短中长筹码统计 源码附图
    源码解析:筹码集中度赋值:(获利盘为90+(100-90)/2%的成本分布-获利盘为(100-90)/2%的成本分布)/(获利盘为90+(100-90)/2%的成本分布+获利盘为(100-90)/2%的成本分布)+收盘价输出超短筹:筹码集中度的10日指数移动平均的3日简单移动平均输出短筹:筹码集中度的20日指数移动平均的3日......