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

对于双向队列,同样需要先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. 生成chm文档工具- Sandcastle -摘自网络

    Sandcastle是微软官方的文档生成工具,NDoc开发停止后,这个貌似也是唯一的一个这方面的工具.它从dll文件及其xml注释文件能够 生成完整的帮助文档,支持多种生成格式(Helpe1x:chm ...

  2. cocos2d-x生成随机数

            //获取系统时间         //time_t是long类型,精确到秒,通过time()函数可以获得当前时间和1970年1月1日零点时间的差         time_t tt; ...

  3. (转)Http协议经典详解

    转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP 是一个属于应用层的面向对象 ...

  4. [iOS UI进阶 - 3.0] 触摸事件的基本处理

    A.需要掌握和练习的 1.介绍事件类型2.通过按钮的事件处理引出view的事件处理3.响应者对象 --> UIResponder --> UIView4.view的拖拽* 实现触摸方法,打 ...

  5. Linux vmstat:报告虚拟内存统计的工具

    众所周知,计算机必须有称之为RAM(随机访问内存)的存储器使得计算机工作.RAM指的是插在计算机主板上的物理存储.这里的RAM被用于加载像浏览器.文字处理器这类的程序,实际上,你使用的程序都运行在内存 ...

  6. linux下安装apache详解

    下载httpd-2.2.6.tar.bz2  把httpd-2.2.6.tar.bz2放到/soft 下[root@localhost ~]#cd /soft[root@localhost soft] ...

  7. 使用paramiko进行打包操作

    使用paramiko执行ssh命令的时候有一个很坑爹的地方:它无法准确的识别你的系统环境变量,所以使用一些命令的时候会发现,直接在系统中执行该命令的时候可以,但是换成paramiko执行的时候会报错说 ...

  8. SPOJ 375 (树链剖分 - 边权剖分 - 修改单边权)

    题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=28982#problem/I 给你一棵有边权的树,有两个操作:一个操作是输出l到 ...

  9. Codeforces Round #337 (Div. 2) D. Vika and Segments (线段树+扫描线+离散化)

    题目链接:http://codeforces.com/contest/610/problem/D 就是给你宽度为1的n个线段,然你求总共有多少单位的长度. 相当于用线段树求面积并,只不过宽为1,注意y ...

  10. POJ 2481 Cows (数组数组求逆序对)

    题目链接:http://poj.org/problem?id=2481 给你n个区间,让你求每个区间被真包含的区间个数有多少,注意是真包含,所以要是两个区间的x y都相同就算0.(类似poj3067, ...