Python 双向队列Deque、单向队列Queue 模块使用详解
Python 双向队列Deque 模块使用详解
创建双向队列Deque序列
双向队列Deque提供了类似list的操作方法:
#!/usr/bin/python3 import collections
#创建队列
d = collections.deque() d.append("1")
d.append("2")
d.append("3")
print(len(d))
print(d[0])
print(d[-1])
执行结果:
3
1
3
两端都使用pop:
#!/usr/bin/python3 import collections
#创建队列
d = collections.deque("12345")
print(len(d))
print(d.popleft())
print(d.pop())
print(d)
执行结果:
5
1
5
deque(['2', '3', '4'])
我们还可以限制deque的长度:
d1 = collections.deque(maxlen=30)
当限制长度的deque增加超过限制数的项时, 另一边的项会自动删除:
#!/usr/bin/python3 import collections #创建队列
d = collections.deque(maxlen=2)
d.append(1)
d.append(2)
print(d)
d.append(3)
print(d)
执行结果:
deque([1, 2], maxlen=2)
deque([2, 3], maxlen=2)
添加list中各项到deque中:
#!/usr/bin/python3 import collections #创建队列
d = collections.deque([1,2,3,4,5])
print(d)
d.extendleft([0])
print(d)
d.extend([6,7,8])
print(d)
执行结果:
deque([1, 2, 3, 4, 5])
deque([0, 1, 2, 3, 4, 5])
deque([0, 1, 2, 3, 4, 5, 6, 7, 8])

Python 双向队列Deque、单向队列Queue 模块使用详解的更多相关文章
- Python collections系列之单向队列
单向队列(deque) 单项队列(先进先出 FIFO ) 1.创建单向队列 import queue q = queue.Queue() q.put(') q.put('evescn') 2.查看单向 ...
- python中利用队列asyncio.Queue进行通讯详解
python中利用队列asyncio.Queue进行通讯详解 本文主要给大家介绍了关于python用队列asyncio.Queue通讯的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细 ...
- python之模块datetime详解
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块datetime详解 import datetime #data=datetime.dat ...
- STL queue 常见用法详解
<算法笔记>学习笔记 queue 常见用法详解 queue翻译为队列,在STL中主要则是实现了一个先进先出的容器. 1. queue 的定义 //要使用queue,应先添加头文件#incl ...
- Python中第三方库Requests库的高级用法详解
Python中第三方库Requests库的高级用法详解 虽然Python的标准库中urllib2模块已经包含了平常我们使用的大多数功能,但是它的API使用起来让人实在感觉不好.它已经不适合现在的时代, ...
- opencart 模块开发详解
opencart 模块开发详解 由 xiekanxiyang » 2013年 7月 11日 10:17 pm opencart 将页面分成若干模块, 每个模块可以有多个实例(可能这样说不是很恰当) 每 ...
- AngularJS模块的详解
AngularJS模块的详解 在讲angularjs的模块之前,我们先介绍一下angular的一些知识点: AngularJS是纯客户端技术,完全用Javascript编写的.它使用的是网页开发的常规 ...
- [转帖]Nginx rewrite模块深入浅出详解
Nginx rewrite模块深入浅出详解 https://www.cnblogs.com/beyang/p/7832460.html rewrite模块(ngx_http_rewrite_modul ...
- STM32开发 -- 4G模块开发详解(转)
STM32开发 -- 4G模块开发详解(1) STM32开发 -- 4G模块开发详解(2) STM32开发 -- 4G模块开发详解(3) STM32开发 -- 4G模块开发详解(4)
随机推荐
- Mysql中的索引问题
索引的用途 提高查询的效率,相当于在字典中建立的字母表或者偏旁部首表,这样查询当然比一行一行查询要快的多 每个存储引擎可以建立索引的长度是不一样的,但每个表至少支持16个索引,总的索引长度至少为256 ...
- Unity3d的Sprite Packer用法介绍
我们用来做sprite 的图片,通常会留有很多空白的地方,我们在画完了sprite之后,这些地方很可能就没有什么作用了.如果想避免这些资源上的浪费,我们可以把各个sprite做成图集,把图片上的空间尽 ...
- P2345 奶牛集会andP2657 低头一族
做法是一样的 题目背景 MooFest, Open 题目描述 约翰的N 头奶牛每年都会参加“哞哞大会”.哞哞大会是奶牛界的盛事.集会上的活动很 多,比如堆干草,跨栅栏,摸牛仔的屁股等等.它们参加活动时 ...
- C#中的委托(转)
C# 中的委托和事件 引言 委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易.它们就像是一道槛儿,过了这个槛的人,觉得真 ...
- 事件对象(示例、封装函数EventUtil())
事件对象 什么是事件对象? 在触发DOM上的事件时都会产生一个对象. 事件对象event 1.DOM中的事件对象 (1)\type属性用于获取事件类型 (2)\target属性用于获取事件目标 (3) ...
- java.lang.NoSuchMethodError: org.hibernate.cfg.Environment.verifyProperties
我在使用jpa2+spring4+hibernate4 的时候,报错java.lang.NoSuchMethodError: org.hibernate.cfg.Environment.verifyP ...
- [实用技巧] Mac下面如何通过终端快速打开当前文件夹
Mac mac里面其实很简单,直接输入 open .,注意是open + 英文句点. Windows windows里面是start .,注意是start + 英文句点.
- 时间插件-daterangepicker
一款基于bootstrap的时间插件daterangepicker,顾名思义,主要用于时间区间选择,也可做单个时间选择 demo.1汉化版的一个时间选择案例 <!DOCTYPE html> ...
- SAP CRM和Cloud for Customer中的Event handler(事件处理器)
SAP CRM可以在开发工具中用右键直接创建一个新的事件处理器: 这些事件处理器实际上就是UI控制器(Controller)上具有特定接口类型的方法. C4C UI的event handler 在C4 ...
- 和为S
2518 和为S 2 秒 262,144 KB 10 分 2 级题 小b有一个01序列A,她想知道A有多少个非空连续子序列和为S. 你能帮帮她吗? 收起 输入 第一行输入一个数n,表示A的长度 ...