python3 优先级队列大小?
python3 priorityqueue size by priority?
有没有办法获取优先级队列的 .size() ...对于每个优先级?
假设我有一个对象,我会将其放入优先级队列,优先级基于 some_variable ...
的状态
q = PriorityQueue()
if some_variable:
q.put((1, my_object))
else:
q.put((2, my_object))
然后我可以通过询问某种 .qsize() 方法来找出答案,例如可能是...的变体
q.qsize()
但我不想知道队列的总大小,而是想知道两个单独的 'groups'/priorities(qsize where priority==1, qsize where priority==2 ), 在这种情况下。
而不是总 q.qsize()?希望这是有道理的。
我认为最简单的方法是
from collections import Counter
sizeByPriority = Counter(priority for priority, _elem in q.queue)
但这当然需要遍历整个队列,这在您的情况下可能是禁止的,并且可能不是线程安全的。
有没有办法获取优先级队列的 .size() ...对于每个优先级?
假设我有一个对象,我会将其放入优先级队列,优先级基于 some_variable ...
的状态q = PriorityQueue()
if some_variable:
q.put((1, my_object))
else:
q.put((2, my_object))
然后我可以通过询问某种 .qsize() 方法来找出答案,例如可能是...的变体
q.qsize()
但我不想知道队列的总大小,而是想知道两个单独的 'groups'/priorities(qsize where priority==1, qsize where priority==2 ), 在这种情况下。
而不是总 q.qsize()?希望这是有道理的。
我认为最简单的方法是
from collections import Counter
sizeByPriority = Counter(priority for priority, _elem in q.queue)
但这当然需要遍历整个队列,这在您的情况下可能是禁止的,并且可能不是线程安全的。