Мне нужно создать что-то вроде этого:
_______
|A: 15|
|A: 45|
|D: 55|
|A: 45|
|D: 65|
(...)
как если бы он имел массив из двух позиций (или словарь), где «А» связано с одним значением, а «D» - с другим. И они будут помещены в очередь, которая будет позже заказана. Часть создания, помещения в очередь, получения событий и других вещей, которые я уже нашел и представляю ниже:
class PriorityQueue(object):
def __init__(self):
self.queue = []
def __str__(self):
return ' '.join([str(i) for i in self.queue])
# for checking if the queue is empty
def isEmpty(self):
return len(self.queue) == []
# for inserting an element in the queue
def insert(self, data):
self.queue.append(data)
# for popping an element based on Priority
def delete(self):
try:
max = 0
for i in range(len(self.queue)):
if self.queue[i] < self.queue[max]:
max = i
item = self.queue[max]
del self.queue[max]
return item
except IndexError:
print()
exit()
Я тестировал его несколько раз, и он действительно сортируется, и я могу получить значения с приоритетом, но я не знаю, как поместить значения, связанные со строкой 'A' или 'D'. Это вообще возможно в питоне?
Представленный код может поместить данные в очередь следующим образом:
myQueue = PriorityQueue()
myQueue.insert(12)
myQueue.insert(1)
myQueue.insert(14)
myQueue.insert(7)
print(myQueue)
while not myQueue.isEmpty():
print(myQueue.delete())
Мне нужно это, чтобы принимать события с самым низким приоритетом и проверять, является ли это 'A' или 'D'