欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python学习: 队列Queue

程序员文章站 2022-03-20 23:52:27
...

队列

队列,对应python中的头文件queue,是一种数据类型,与list列表、dict字典相关。

队列类型:

  • FIFO先进先出队列:先进先出,类似堆
  • LIFO先进后出队列:先进后出,类似栈
  • Priority优先队列: 数据有优先级,值小先出

python中的queue类

FIFO队列

import queue
# python中的普通队列对应FIFO队列
myFIFO = queue.Queue()

LIFO队列

import queue

myLIFO = queue.LifoQueue()

PriorityQueue队列

import queue

myPriority = queue.PriorityQueue()

常用类方法

Queue.qsize() 队列长度
Queue.maxsize 队列最大长度(队列初始化时可用)
Queue.put() 放入一个元素
Queue.get() 获得一个元素
Queue.empty() 判断是否是空队列
Queue.full() 判断是否是满队列
# 以先进先出一般队列为例
import queue

myQueue = queue.Queue(maxsize=10)
# 如果要使队列无限长,可以设置 maxsize=0
for i in range(10):
	myQueue.put(i)
	#  如果myQueue队列满了,再调用非阻塞的put()和put_nowait()就会抛出Queue.Full异常
print(myQueue.qsize())
print(myQueue.full())

for i in range(10):
	print(myQueue.get())
	#  如果myQueue队列空了,再调用非阻塞get()和get_nowait()就会抛出Queue.Empty异常
print(myQueue.empty())

#results:
# 10
# True
# 0
# 1
# 2
# .
# .
# .
# 9
# True