Python 队列Queue和PriorityQueue解析
什么是队列
队列是一种特殊的数据结构,它只允许在队尾进行插入操作,在队首进行删除操作。类似于现实生活中的排队等候,先来先服务。
Python中的Queue模块
Python自带一个Queue模块,提供了一些队列相关的类。其中最常用的是Queue和PriorityQueue两个类。
Queue
Queue类是一种线程安全的先进先出(FIFO)的队列。如果不指定大小,则默认为无限长,如果指定了大小,则当队列中元素数量达到大小限制后继续插入元素时,便会进入阻塞状态,直到有元素被删除。
下面是一个简单的Queue示例:
import queue
q = queue.Queue()
for i in range(5):
q.put(i)
while not q.empty():
print(q.get())
运行结果:
0
1
2
3
4
PriorityQueue
PriorityQueue类是一种可以按照元素优先级进行排序的队列。每次从队列中取出元素时,将会按照优先级从高到低进行取出。如果两个元素的优先级相同,则按照它们插入到队列的先后顺序进行取出。
下面是一个简单的PriorityQueue示例:
import queue
q = queue.PriorityQueue()
q.put((3, "apple"))
q.put((1, "banana"))
q.put((2, "orange"))
while not q.empty():
print(q.get()[1])
运行结果:
banana
orange
apple
总结
以上便是Python中的Queue和PriorityQueue的基本使用方法,希望本文可以对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 队列Queue和PriorityQueue解析 - Python技术站