码迷,mamicode.com
首页 > 编程语言 > 详细

python(3)-队列

时间:2016-02-25 01:36:03      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

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

对于双向队列,同样需要先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)-队列

标签:

原文地址:http://www.cnblogs.com/huangxm/p/5215583.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!