赞
赏
Python 中的队列分为三种,即先进先出(FIFO)队列、 先进后出(LIFO)队列 以及优先级队列。其中,优先级队列在 Python 中使用 PriorityQueue 表示。
在 Python 中使用优先队列时,在向优先队列存入数据的时候需要设置优先级,取数据的时候默认按照优先级最高的取出。
值得注意的是:在将数据存入到优先队列 PriorityQueue 时,设置的优先级的值越小,则表明优先级越高,越先被取出。
q = queue.PriorityQueue() q.put([priority, value]) q.put([priority1, value1])
首先,使用 queue.PriorityQueue() 声明一个优先队列,接着,使用优先队列的 put 函数,向队列里面存放数据。
put 函数的第一个 参数 表示的是当前这个数据的优先级,第二个参数是值,优先级的值越小,则表明优先级越高,越先被取出。
使用 Python PriorityQueue 实现优先队列
import queue
q = queue.PriorityQueue()
q.put([1, 'HaiCoder']) # 1是级别最高的
q.put([40, 1024])
q.put([3, 'Python'])
q.put([5, True])
if __name__ == '__main__':
print("嗨客网(www.haicoder.net)")
while not q.empty(): # 不为空时候执行
print("get data =", q.get())
程序运行后,控制台输出如下:
我们首先使用 queue.PriorityQueue 创建了一个优先队列 q,接着,使用优先队列的 put 函数向优先队列里面存入了四条数据,并且在存入数据时,设置了不同的优先级。
从运行结果,我们发现,从优先队列获取数据时,是按照优先级从小到大的数据被取出的。
优先级队列在 Python 中使用 PriorityQueue 表示。在 Python 中使用优先队列时,在向优先队列存入数据的时候需要设置优先级,取数据的时候默认按照优先级最高的取出。
值得注意的是:在将数据存入到优先队列 PriorityQueue 时,设置的优先级的值越小,则表明优先级越高,越先被取出。Python 优先队列 PriorityQueue 语法:
q = queue.PriorityQueue() q.put([priority, value]) q.put([priority1, value1])