Prioritize your queue
A PriorityQueue is a type of queue imported from the module with the same name.
It uses sort order to decide what to retrieve from it first (your object must have a way of comparing its instances):
import queue
class Rezha(object): def __init__(self, priority): self.priority = priority
def __lt__(self, other): return self.priority > other.priority
q = queue.PriorityQueue()q.put(Rezha(11))q.put(Rezha(55))q.put(Rezha(100))while not q.empty(): print(q.get().priority)# output is 100 / 55 / 11Having defined the __lt__ method, our PriorityQueue knows now how to sort elements of type Rezha.