class PriorityQueue:
def __init__(self):
self.queue = []
def is_empty(self):
return len(self.queue) == 0
def push(self, task, priority):
self.queue.append((task, priority))
# Smallest priority number removed first
self.queue.sort(key=lambda x: x[1])
def pop(self):
if self.is_empty():
raise IndexError("Priority Queue is empty")
return self.queue.pop(0)
pq = PriorityQueue()
pq.push("A", 3)
pq.push("B", 2)
pq.push("C", 3)
pq.push("D", 1)
task, priority = pq.pop()
print(task, priority)