我已经读过What do I use for a max-heap implementation in Python?主题,到今天为止已经浏览了74k多次(这意味着很多人遇到了同一问题),我一直在想为什么不实现max heap的原因是什么Python标准库中的数据类型?取反或取反值并将它们保留在最小堆中对我来说看起来很丑陋,并引入了不必要的开销(我们需要自己两次应用转换)。
编辑:如@Boris所指出,此问题已经提出here并被拒绝。这是Raymond Hettinger的辩解:
对不起,詹姆斯,如果没有足够的经证明的需求,我们就不会开发API。否则,我们最终会陷入API泛滥的境地。有实际用例的人没有要求行为(偶尔通过否定数字参数可以一次性获得行为)。这就是为什么有意将maxheap函数设为私有。
FWIW,该模块非常老,核心功能早已证明足以满足其用例(例如在事件循环中使用以有效选择下一个计划的事件)。