PriorityQueue:优先队列
导入模块
from queue import PriorityQueue
查看源码可以知道PriorityQueue是继承Queue的,基本的东西就不再赘述了,不清楚可以查看队列的使用1和2
优先队列的使用
from queue import PriorityQueue
pq = PriorityQueue()
pq.put(20)
pq.put(10)
pq.put(30)
print(pq.get())
print(pq.get())
print(pq.get())
结果: 10
20
30
可以看出,优先队列的出队列是按照从小到大的,那么可能有人会问有没有从大到小的队列?
查看源码发现了这句话
Variant of Queue that retrieves open entries in priority order (lowest first).
Entries are typically tuples of the form: (priority number, data).
优先级是根据元组的(优先级号,数据),这样就好办了
from queue import PriorityQueue
pq = PriorityQueue()
pq.put((-3,3))
pq.put((-2,2))
pq.put((-1,1))
print(pq.get()[1])
print(pq.get()[1])
print(pq.get()[1])
结果:3
2
1
可以通过元组的方式,设置数据的优先级