队列分为双向队列和单向队列:

对于双向队列,同样需要先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)-队列的更多相关文章

  1. python消息队列snakemq使用总结

    Python 消息队列snakemq总结 最近学习消息总线zeromq,在网上搜了python实现的消息总线模块,意外发现有个消息队列snakemq,于是拿来研究一下,感觉还是很不错的,入手简单使用也 ...

  2. python RabbitMQ队列使用(入门篇)

    ---恢复内容开始--- python RabbitMQ队列使用 关于python的queue介绍 关于python的队列,内置的有两种,一种是线程queue,另一种是进程queue,但是这两种que ...

  3. Python之队列Queue

    今天我们来了解一下python的队列(Queue) queue is especiall useful in threaded programming when information must be ...

  4. Python消息队列工具 Python-rq 中文教程

    原创文章,作者:Damon付,如若转载,请注明出处:<Python消息队列工具 Python-rq 中文教程>http://www.tiangr.com/python-xiao-xi-du ...

  5. Python 用队列实现多线程并发

    # Python queue队列,实现并发,在网站多线程推荐最后也一个例子,比这货简单,但是不够规范 # encoding: utf-8 __author__ = 'yeayee.com' # 由本站 ...

  6. python RabbitMQ队列使用

    python RabbitMQ队列使用 关于python的queue介绍 关于python的队列,内置的有两种,一种是线程queue,另一种是进程queue,但是这两种queue都是只能在同一个进程下 ...

  7. Python之队列

    Python之队列 队列:先进先出 队列与线程有关. 在多线程编程时,会起到作用. 作用:确保信息安全的进行交换. 有get 和 put 方法. ''' 创建一个“队列”对象 import Queue ...

  8. Python 单向队列Queue模块详解

    Python 单向队列Queue模块详解 单向队列Queue,先进先出 '''A multi-producer, multi-consumer queue.''' try: import thread ...

  9. Python 双向队列Deque、单向队列Queue 模块使用详解

    Python 双向队列Deque 模块使用详解 创建双向队列Deque序列 双向队列Deque提供了类似list的操作方法: #!/usr/bin/python3 import collections ...

  10. python 线程队列PriorityQueue(优先队列)(37)

    在 线程队列Queue / 线程队列LifoQueue 文章中分别介绍了先进先出队列Queue和先进后出队列LifoQueue,而今天给大家介绍的是最后一种:优先队列PriorityQueue,对队列 ...

随机推荐

  1. 数位DP专题

    这周开始刷数位DP,在网上找到一份神级数位DP模板,做起题目来爽歪歪. http://www.cnblogs.com/jffifa/archive/2012/08/17/2644847.html in ...

  2. JodaTime用法简介

    JodaTime用法简介 Java的Date和Calendar用起来简直就是灾难,跟C#的DateTime差距太明显了,幸好有JodaTime 本文简单罗列JodaTime的用法 package co ...

  3. UVaLive 6627 First Date (转换时间)

    题意:给定两个日期,两种不同算闰年的方法,导致日期不同,给定那个慢的,求你求了那个快的. 析:因为算闰年的方法不同,所以我们就要先从1582算到当前时间,算出差了多少天,再加上就好.注意跨月,跨年的情 ...

  4. Unity3D中关于场景销毁时事件调用顺序的一点记录

    先说一下我遇到的问题,我弄了一个对象池管理多个对象,对象池绑定在一个GameObject上,每个对象在OnBecameInvisible时会进行回收(即移出屏幕就回收),但是当场景切换或停止运行程序时 ...

  5. HttpModule的认识与深入理解及MVC运行机制

    转自:http://kb.cnblogs.com/page/50130/ ASP.NET MVC架构与实战系列之二:理解MVC路由配置 http://www.cnblogs.com/jyan/arch ...

  6. Volley使用指南第四回(来自developer.android)

    Volley网络请求的第四篇,废话不多说,开始. 这一篇文章将会教你怎样在Volley支持的范围内定制一个请求. 第一步:写一个通用请求: 大多数请求都有已经写好的接口供你调用,如果你的请求是Stri ...

  7. 教你看懂邮件头信息<转载>

    MIME对于邮件系统的扩展是巨大的,因为在MIME出现以前,信件内容如果要包括声音和动画,就必须把它变为ASCII码或把二进制的信息变成可以传送的编码标准,而接收方必须经过解码才可以获得声音和图画信息 ...

  8. Educational Codeforces Round 2 E. Lomsat gelral 启发式合并map

    E. Lomsat gelral Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/600/prob ...

  9. Codeforces Round #331 (Div. 2) D. Wilbur and Trees 记忆化搜索

    D. Wilbur and Trees Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/596/p ...

  10. Codeforces Gym 100342J Problem J. Triatrip bitset 求三元环的数量

    Problem J. TriatripTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100342/att ...