本文内容来自于python队列queue 之优先级队列
PriorityQueue创建的是大顶堆,即值越小优先级越高。
创建&取数
from queue import PriorityQueue
def PriorityQueue_int():
que = PriorityQueue()
que.put(10)
que.put(1)
que.put(5)
while not que.empty():
print (que.get())
PriorityQueue_int()
自定义优先级
from queue import PriorityQueue
class Skill(object):
def __init__(self, priority, description):
self.priority = priority
self.description = description
def __lt__(self, other):
return self.priority < other.priority
def __str__(self):
return '(' + str(self.priority)+',\'' + self.description + '\')'
def PriorityQueue_class():
que = PriorityQueue()
que.put(Skill(7,'proficient7'))
que.put(Skill(5,'proficient5'))
que.put(Skill(6,'proficient6'))
que.put(Skill(10,'expert'))
que.put(Skill(1,'novice'))
print ('end')
while not que.empty():
print (que.get())
PriorityQueue_class()
打印结果
(1,'novice')
(5,'proficient5')
(6,'proficient6')
(7,'proficient7')
(10,'expert')
网友评论