![]() |
1
2
假设您不关心要删除哪20%的项,所以我选择删除那些在队列中优先级最低的项。我们还假设优先级队列是 heapq 在python的标准库中。最后,让我们假设这个删除是由调用例程完成的,只要它们选择这样做,而不是由优先级队列结构本身自动完成。
优先级队列
或者稍微短一点的替代品,
这只是将列表截断为其长度的4/5,删除列表的末尾。这是因为堆的属性在这个截断中被保留,所以
当然,这可以成为它自己的一个功能。您还可以根据python的列表轻松创建一个新类,当队列的大小达到一定数量时,该类将自动执行此操作。我把这些留给你。 |