我们可以使用一个类来存储元素和元素的优先级,然后使用heapq模块中的heapreplace函数来更改元素的优先级。

import heapq

class Element:
  def __init__(self, priority, value):
    self.priority = priority
    self.value = value

  # __lt__方法是只有一个元素可以比较大小时所调用的方法
  def __lt__(self, other):
    return self.priority < other.priority

pq = []
heapq.heappush(pq, Element(3, 'A'))
heapq.heappush(pq, Element(2, 'B'))
heapq.heappush(pq, Element(1, 'C'))

# pq[2].priority = 3
heapq.heapify(pq)

while len(pq) > 0:
  print(heapq.heappop(pq).value)


参考资料:
https://pythonjishu.com/python-priority/

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐