假设我有这个代码:
q = PriorityQueue()
a = ((1,1), 10, 0)
b = ((2,2), 99, 200)
q.put(a)
q.put(b)
我想检查元素
(1, 1)
是否存在于队列中的任何元组中。有办法做到这一点吗?
PriorityQueue
对象将其项目存储在可通过queue
属性访问的列表中。因此,你可以这样做:
>>> q = PriorityQueue()
>>> a = ((1, 1), 10, 0)
>>> q.put(a)
>>> any((1, 1) in item for item in q.queue)
True
当然,这是一个 O(N) 操作,其中 N 是优先级队列中的元素数量。