python基础(deque双端队列)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python基础(deque双端队列),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2263字,纯文字阅读大概需要4分钟。
内容图文
![python基础(deque双端队列)](/upload/InfoBanner/zyjiaocheng/839/a5011de6e63b440bb65002e746fcf4e3.jpg)
双端队列
在需要按添加元素的顺序进行删除时,双端队列很有用。在模块collections中,包含类型deque以及其他几个集合(collection)类型。
与集合(set)一样,双端队列也是从可迭代对象创建的,它包含多个很有用的方法。
- A=deque([]) #创建一个空的双队列
- A.append(n) #从右边像队列中增加元素 ,n表示增加的元素
- A.appendleft(n) #从左边像队列中增加元素,n表示增加的元素
- A.clear() #清空队列
- A.count(n) #在队列中统计元素的个数,n表示统计的元素
- A.extend(n) #从右边扩展队列,n表示扩展的队列
- A.extendleft(n) #从左边扩展队列,n表示扩展的队列
- A.pop() #从队列的右边删除元素,并且返回删除值
- A.popleft() #从队列的左边删除元素,并且返回删除值
- A.remove(n) #从队列中删除指定的值‘
- A.reverse() #翻转队列
- A.rotate(n) #旋转队列,默认时值为1,由右边开始旋转,负值代表左边旋转,n代表从队列的第一个元素开始,n从1开始计数
例:
>>> from collections import deque
>>> q = deque(range(5)) #设置deque队列容器只能容纳5个元素
>>> q.append(5)
>>> q.appendleft(6)
>>> q
deque([6, 0, 1, 2, 3, 4, 5])
>>> q.pop()
5
>>> q.popleft()
6
>>> q.rotate(3) #设置最后3个元素2、3、4向左移,环绕到开始一端,如果参数为负数,则向右移放到最后。
>>> q
deque([2, 3, 4, 0, 1])
>>> q.rotate(-1)
>>> q
deque([3, 4, 0, 1, 2])
双端队列很有用,因为它支持在队首(左端)高效地附加和弹出元素,而使用列表无法这样做。另外,还可高效地旋转元素(将元素向右或向左移,并在到达一端时环绕到另一端)。双端队列对象还包含方法extend和extendleft,其中extend类似于相应的列表方法,而extendleft类似于appendleft。请注意,用于extendleft的可迭代对象中的元素将按相反的顺序出现在双端队列中。
>>> d = collections.deque()
>>> d.extendleft(range(6))
>>> d deque([5, 4, 3, 2, 1, 0])
统计队列中元素个数
使用count()方法统计队列中某个元素的个数。
from collections import deque
d = deque("abac")
d.count('a') #输出2
反转队列
使用reverse方法反转队列:
from collections import deque
d = deque(range(10))
d.reverse()
maxlen(队列最大长度)
deque还可以设置队列的长度,使用 deque(maxlen=N) 构造函数会新建一个固定大小的队列。当新的元素加入并且这个队列已满的时候, 最老的元素会自动被移除掉。
如果你不设置最大队列大小,那么就会得到一个无限大小队列。
from collections import deque
d1 = deque(maxlen=5)
d2 = deque(range(10),4)
Deque的缺点就是remove还有判断获取索引的时候,速度有些慢, 因为他需要执行多遍deque相关联的数据块 。不像list那样,搞一遍就行。
内容总结
以上是互联网集市为您收集整理的python基础(deque双端队列)全部内容,希望文章能够帮你解决python基础(deque双端队列)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。