python(3)-队列
队列分为双向队列和单向队列:
对于双向队列,同样需要先import collections
创建队列
>>> import collections
>>> d = collections.deque()
>>> type(d)
<class 'collections.deque'>
向队列中添加元素
>>> d.appendleft("1") #从左边添加
>>> print(d)
deque(['1'])
>>> d.append('2') #从右边添加
>>> print(d)
deque(['1', '2'])
双向队列中的方法
>>> d.append('2')
>>> print(d)
deque(['1', '2'])
>>> d.append('2')
>>> print(d)
deque(['1', '2', '2']) #计数
>>> d.count('2')
>>> d.extend(['33','44']) #扩展
>>> print(d)
deque(['1', '2', '2', '33', '44'])
>>> d.extendleft(['11','22']) #从左边扩展
>>> print(d)
deque(['22', '11', '1', '2', '2', '33', '44']) #注意顺序,队列是先进先出的
>>> d.pop() #从右边取数据
'44'
>>> d.pop()
'33'
>>>
>>> d.popleft() #从左边取数据
'22'
>>> d.popleft()
'11'
>>>
>>> print(d)
deque(['1', '2', '2'])
>>> d.remove("2") #从队列中删除数据
>>> print(d)
deque(['1', '2'])
>>> d.append(["33","44"]) #向队列中添加列表
>>> print(d)
deque(['1', '2', ['33', '44']])
>>> d.rotate(1) #把最后一个放到前面
>>> print(d)
deque([['33', '44'], '1', '2'])
>>> d.rotate(2) #把最后两个放到前面
>>> print(d)
deque(['1', '2', ['33', '44']])
>>> d.reverse() #反转
>>> print(d)
deque([['33', '44'], '2', '1'])
单向队列:
单向队列需要import queue
>>> import queue
>>> q = queue.Queue() #创建单向队列
>>> type(q)
<class 'queue.Queue'>
单向队列的方法
>>> q.put("a") #往队列中放元素
>>> q.put(["b","c"])
>>> print(q)
<queue.Queue object at 0x000000000309DE80>
>>> q.qsize() #队列中元素的个数
2
>>> q.get() #往外拿元素,先进先出,当元素被拿完时,队列会处于等待状态,直到有元素被put
'a'
>>> q.get()
['b', 'c']
>>> q.get()
>>> q = queue.Queue()
>>> q.empty() #队列是否为空
True
>>> q = queue.Queue(maxsize = 3) #定义队列的最大长度
>>> q.put(1)
>>> q.put(2)
>>> q.put(3)
>>> q.put(4) #当put的元素超出最大长度时队列会处于等待状态,直到空出数据单元
python(3)-队列的更多相关文章
- python消息队列snakemq使用总结
Python 消息队列snakemq总结 最近学习消息总线zeromq,在网上搜了python实现的消息总线模块,意外发现有个消息队列snakemq,于是拿来研究一下,感觉还是很不错的,入手简单使用也 ...
- python RabbitMQ队列使用(入门篇)
---恢复内容开始--- python RabbitMQ队列使用 关于python的queue介绍 关于python的队列,内置的有两种,一种是线程queue,另一种是进程queue,但是这两种que ...
- Python之队列Queue
今天我们来了解一下python的队列(Queue) queue is especiall useful in threaded programming when information must be ...
- Python消息队列工具 Python-rq 中文教程
原创文章,作者:Damon付,如若转载,请注明出处:<Python消息队列工具 Python-rq 中文教程>http://www.tiangr.com/python-xiao-xi-du ...
- Python 用队列实现多线程并发
# Python queue队列,实现并发,在网站多线程推荐最后也一个例子,比这货简单,但是不够规范 # encoding: utf-8 __author__ = 'yeayee.com' # 由本站 ...
- python RabbitMQ队列使用
python RabbitMQ队列使用 关于python的queue介绍 关于python的队列,内置的有两种,一种是线程queue,另一种是进程queue,但是这两种queue都是只能在同一个进程下 ...
- Python之队列
Python之队列 队列:先进先出 队列与线程有关. 在多线程编程时,会起到作用. 作用:确保信息安全的进行交换. 有get 和 put 方法. ''' 创建一个“队列”对象 import Queue ...
- Python 单向队列Queue模块详解
Python 单向队列Queue模块详解 单向队列Queue,先进先出 '''A multi-producer, multi-consumer queue.''' try: import thread ...
- Python 双向队列Deque、单向队列Queue 模块使用详解
Python 双向队列Deque 模块使用详解 创建双向队列Deque序列 双向队列Deque提供了类似list的操作方法: #!/usr/bin/python3 import collections ...
- python 线程队列PriorityQueue(优先队列)(37)
在 线程队列Queue / 线程队列LifoQueue 文章中分别介绍了先进先出队列Queue和先进后出队列LifoQueue,而今天给大家介绍的是最后一种:优先队列PriorityQueue,对队列 ...
随机推荐
- B树在数据库索引中的应用剖析
引言 关于数据库索引,google一个oracle index,mysql index总 有大量的结果,其中很多的使用方法推荐,**索引之n条经典建议云云.笔者认为,较之借鉴,在搞清楚了自己的需求的基 ...
- Android JNI之C/C++层调用JAVA
转载请声明:原文转自:http://www.cnblogs.com/xiezie/p/5930032.html 从C/C++层调用JAVA层代码步骤: 1. 在JAVA类中创建java方法和本地方法 ...
- NodeJS:树的序列化
本文也在我的博客edwardesire.com上,欢迎品尝. 接着上周的工作,我们把上周反序列得到的dtree对象输出到JSON,再将其序列化后存入MongoDB. 存入文档 先将上次得到的决策树对象 ...
- Nginx的配置文件(nginx.conf)解析和领读官网
步骤一:vi nginx.conf配置文件,参考本博文的最下面总结,自行去设置 最后nginx.conf内容为 步骤二:每次修改了nginx.conf配置文件后,都要reload下. index.ht ...
- Java集合之ArrayList和LinkedList的实现原理以及Iterator详解
ArrayList实现可变数组的原理: 当元素超出数组内容,会产生一个新数组,将原来数组的数据复制到新数组中,再将新的元素添加到新数组中. ArrayList:是按照原数组的50%来延长,构造一个初始 ...
- Android实例-全屏显示程序(XE10+小米2)(无图)
方法一:选中窗体->BorderStyle改为“None” 方法二: 1.下载第三方控件QAndroid.Shell 2.执行FShell.Execute('su -c mount -o rem ...
- 2015年必火的五个Html5移动开发工具推荐
NO.1 DCloudHBuilder:基于HTML5开发工具 中文官网:http://www.dcloud.io/ DCloudHBuilder:基于HTML5开发工具是当前最快的HTML开发工 ...
- java命令行运行jar里的main类
一般运行包含manifest的jar包,可以使用 java -jar <jar-file-name>.jar 如果jar里没有 manifest,则可以使用 java -cp foo.ja ...
- Unity3D行为树插件Behave学习笔记
Behave1.4行为树插件 下载地址:http://pan.baidu.com/s/1i4uuX0L 安装插件和使用 我们先来看看插件的安装和基本使用方法,新建一个Unity3D项目,这里我使用的是 ...
- Android 多点触控错误处理(java.lang.IllegalArgumentException: pointerIndex out of range)
最近做View的多点触控时,每次第一次触控事件完美运行,第二次就直接崩了,错误信息如下: 01-03 00:05:44.220 4377-4410/system_process E/AndroidRu ...