创建python优先级队列

sis*_*ody 0 python priority-queue task-queue

我想在python中构建一个优先级队列,其中队列包含不同的字典及其优先级编号.因此,当调用"get function"时,具有最高优先级(最低编号)的字典将被拉出队列,并且当调用"add function"时,新字典将被添加到队列中并基于其排序优先号码.

请帮忙...

提前致谢!

Ned*_*der 6

使用标准库中的heapq模块.

您没有指定如何将优先级与字典关联,但这是一个简单的实现:

import heapq

class MyPriQueue(object):
    def __init__(self):
        self.heap = []

    def add(self, d, pri):
        heapq.heappush(self.heap, (pri, d))

    def get(self):
        pri, d = heapq.heappop(self.heap)
        return d
Run Code Online (Sandbox Code Playgroud)