本文主要是介绍飘逸的python - 实现一个极简的优先队列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一个队列至少满足2个方法,put和get.
借助最小堆来实现.
这里按"值越大优先级越高"的顺序.
#coding=utf-8
from heapq import heappush, heappop
class PriorityQueue:def __init__(self):self._queue = []def put(self, item, priority):heappush(self._queue, (-priority, item))def get(self):return heappop(self._queue)[-1]q = PriorityQueue()
q.put('world', 1)
q.put('hello', 2)
print q.get()
print q.get()
这篇关于飘逸的python - 实现一个极简的优先队列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!