我正在寻找一种优先级队列,它允许我给出两个优先级.我希望它只检查第一个值,然后检查第二个值这是一些代码
import Queue
class Job(object):
def __init__(self, fpriority, spriority, description, iata , hops, cost):
self.fpriority = fpriority
self.spriority = spriority
q = Queue.PriorityQueue()
q.put(Job(2, 5, 'Mid-level job'))
q.put(Job(2, 20, 'Low-level job'))
q.put(Job(1, 20, 'Important job'))
Run Code Online (Sandbox Code Playgroud)
现在我想要以下元素的顺序
Important job
Mid_level job
Low_level job
Run Code Online (Sandbox Code Playgroud)
我如何用一个队列创建这样的订单?
众所周知,插入优先级队列的元素具有确定其优先级的值。例如,如果我有五个A,B,C,D,E具有优先级的元素(我们称之为优先级值priorityI):
A = 10, B = 5, C = 1, D = 3, E = 2。但是我如何编写一个可以定义两个优先级值的优先级队列,我的意思是:如果两个元素具有相同的值priorityI,则值priorityII决定应首先采用哪个元素,例如:
element A has priorityI = 3, and prioriotyII = 5
element B has priorityI = 3, and prioriotyII = 1
Run Code Online (Sandbox Code Playgroud)
那么第一个元素 B 将首先从队列中取出。