我需要一个队列结构,按插入值对元素(id,value)进行排序.此外,我需要能够删除具有最高值的元素.我不需要这种结构是线程安全的.在Java中,我想这与PriorirtyQueue相对应.
我应该在Python中使用什么结构?你能提供一个玩具的例子吗?
Python有类似的东西(它实际上是一个线程安全的包装器heapq):
from Queue import PriorityQueue
q = PriorityQueue()
q.put((-1, 'foo'))
q.put((-3, 'bar'))
q.put((-2, 'baz'))
Run Code Online (Sandbox Code Playgroud)
而不是最大的,你可以得到最低的数字q.get():
>>> q.get()
(-3, 'bar')
Run Code Online (Sandbox Code Playgroud)
如果您不喜欢底片,可以覆盖该_get方法:
class PositivePriorityQueue(PriorityQueue):
def _get(self, heappop=max):
return heappop(self.queue)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1190 次 |
| 最近记录: |