Python优先队列队列(PriorityQueue)

Python先进后出队列(PriorityQueue)教程

Python 中的队列分为三种,即先进先出(FIFO)队列、 先进后出(LIFO)队列 以及优先级队列。其中,优先级队列在 Python 中使用 PriorityQueue 表示。

Python优先队列 PriorityQueue 简介

在 Python 中使用优先队列时,在向优先队列存入数据的时候需要设置优先级,取数据的时候默认按照优先级最高的取出。

值得注意的是:在将数据存入到优先队列 PriorityQueue 时,设置的优先级的值越小,则表明优先级越高,越先被取出。

Python优先队列PriorityQueue详解

语法

q = queue.PriorityQueue() q.put([priority, value]) q.put([priority1, value1])

说明

首先,使用 queue.PriorityQueue() 声明一个优先队列,接着,使用优先队列的 put 函数,向队列里面存放数据。

put 函数的第一个 参数 表示的是当前这个数据的优先级,第二个参数是值,优先级的值越小,则表明优先级越高,越先被取出。

案例

Python优先队列

使用 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())

程序运行后,控制台输出如下:

22 python优先队列queue.png

我们首先使用 queue.PriorityQueue 创建了一个优先队列 q,接着,使用优先队列的 put 函数向优先队列里面存入了四条数据,并且在存入数据时,设置了不同的优先级。

从运行结果,我们发现,从优先队列获取数据时,是按照优先级从小到大的数据被取出的。

Python先进后出队列(PriorityQueue)教程总结

优先级队列在 Python 中使用 PriorityQueue 表示。在 Python 中使用优先队列时,在向优先队列存入数据的时候需要设置优先级,取数据的时候默认按照优先级最高的取出。

值得注意的是:在将数据存入到优先队列 PriorityQueue 时,设置的优先级的值越小,则表明优先级越高,越先被取出。Python 优先队列 PriorityQueue 语法:

q = queue.PriorityQueue() q.put([priority, value]) q.put([priority1, value1])