python常用模块-queue队列

python队列的四种类型

  Queue:先进先出

  LifoQueue:后进先出

  PriorityQueue:有限队列,级别越低,越优先

  deque:双边队列

# 导入
from queue import Queue,LifoQueue,PriorityQueue
from collections import deque

# Queue:先进先出
# maxsize设置队列中,数据上限,小于或等于0则不限制,容器中大于这个数则阻塞,直到队列中的数据被消掉
q = Queue(maxsize=0)
# 写入队列数据
q.put(0)
q.put(1)
q.put(2)
# 查看队列所有数据
print(q.queue)
# 删除队列数据,并返回该数据
q.get()

>>> q = Queue(maxsize=0)
>>> q.put(0)
>>> q.put(1)
>>> q.put(2)
>>> q.queue
deque([0, 1, 2])
>>> q.get()
0
>>> q.queue
deque([1, 2])


# LifoQueue:后进先出
# 创建队列
q1 = LifoQueue(maxsize=0)
# 新增数据
q1.put(0)
q1.put(1)
q1.put(2)
# 查看队列的数据
q1.queue
# 删除队列数据
q1.get()

>>> q1 = LifoQueue(maxsize=0)
>>>
>>> q1.put(0)
>>> q1.put(1)
>>> q1.put(2)
>>>
>>> q1.queue
[0, 1, 2]
>>> q1.get()  # 后进先出,是从末尾开始删除
2
>>> q1.queue
[0, 1]

# 创建可以设置优先级的队列,数字越小优先级越高 
q2 = PriorityQueue(maxsize=0)
# 新增数据
q2.put(9, 'a')
q2.put(7, 'c')
q2.put(1, 'd')
# 查看数据
q2.queue
# 删除数据
q2.get()

>>> q2 = PriorityQueue(maxsize=0)
>>> q2.put(9, 'a')
>>> q2.put(7, 'c')
>>> q2.put(1, 'd')
>>> q2.queue
[1, 9, 7]
>>> q2.get()
1
>>> q2.queue
[7, 9]


# 双边队列
# 创建队列
q4 = deque(['a', 'b'])
# 增加数据到队尾
q4.append('c')
q4+='f'
# 增加数据到队首
q4.appendleft('d')
# 输出队列所有数据
q4
# 移除队尾,并返回
q4.pop()
#移除队首,并返回
q4.popleft()

>>> q4 = deque(['a', 'b'])
>>> q4.append('c')
>>> q4.appendleft('d')
>>> q4
deque(['d', 'a', 'b', 'c'])
>>> q4.pop()
'c'
>>> q4.popleft()
'd'
>>> q4
deque(['a', 'b'])

猜你喜欢

转载自www.cnblogs.com/su-sir/p/12516261.html