python heapq自定义排序
我们可以使用一个类来存储元素和元素的优先级,然后使用heapq模块中的heapreplace函数来更改元素的优先级。
·
我们可以使用一个类来存储元素和元素的优先级,然后使用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/
更多推荐
已为社区贡献5条内容
所有评论(0)