转载博文:https://blog.csdn.net/qq_34840129/article/details/80846838
cmp用法转载:https://www.yangyanxing.com/article/priorityqueue_in_python.html
from heapq import *
class CompareAble:
def __init__(self,priority,jobname):
self.priority = priority
self.jobname = jobname
def __lt__(self, other):
if self.priority <= other.priority:
return False
else:
return True
heap = []
a = CompareAble(80,"age")
heappush(heap,a)
b= CompareAble(90,"aage")
heappush(heap,b)
heappush(heap, CompareAble(1,"kk"))
print(heap.pop().priority)
print(heap.pop().priority)
#print(heap[2].priority)
import heapq
# 使用heapq实现优先队列
#定义一个可比较对象
class CompareAble:
def __init__(self,priority,jobname):
self.priority = priority
self.jobname = jobname
def __lt__(self, other):
if self.priority <= other.priority:
return False
else:
return True
joblist = []
heapq.heappush(joblist,CompareAble(80,'eat'))
heapq.heappush(joblist,CompareAble(70,'a write plan2'))
heapq.heappush(joblist,CompareAble(30,'write plan'))
heapq.heappush(joblist,CompareAble(110,'sleep'))
heapq.heappush(joblist,CompareAble(100,'write code'))
while joblist:
task = heapq.heappop(joblist)
print(task.priority,task.jobname)