传统解决方案是将(优先级,任务)元组存储在堆中:
pq = [ ]heappush(pq, (10, task1))heappush(pq, (5, task2))heappush(pq, (15, task3))priority, task = heappop(pq)
只要没有两个任务具有相同的优先级,就可以正常工作。否则,将比较任务本身(在Python 3中可能根本无法工作)。
常规文档提供了有关如何使用heapq实现优先级队列的指南:
http://docs.python.org/library/heapq.html#priority-queue-implementation-
notes



