Python 固定容量堆:heapreplace 总会换入新值,为什么可能把前三名越换越小 数据不断进入,只想保留最大的三个数,可以用小顶堆把当前门槛放在堆顶。但如果每来一条就直接heapreplace,低于门槛的新值也会被放进去,原本应该留下的高值反而出局。容量保持三,并不代表内容仍是前三名。下面先让两个... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
Python heapq.merge:几路数据混在一起,为什么结果仍然乱序 把几个服务导出的时间记录合成一份报表时,看到 heapq.merge 会返回有序流,很容易直接把几路原始列表交给它。结果前面几项升序,后面却突然出现更小的值。问题并不是归并偶尔失灵,而是其中一路原本没有按同一规则排好... yunqueblog/ 技术教程/ 2026-10-02/ 4 阅读
Python heapq 稳定优先队列:用序号处理并列,避免比较任务内容 先约定“同样着急”时谁先执行假设一个图片处理脚本收到普通任务甲、紧急任务、普通任务乙和普通任务丙。业务规则是紧急任务先取,三个普通任务按到达次序取。任务本身是字典,包含名称、路径和处理参数;这些字段用于执行任务,不能... yunqueblog/ 技术教程/ 2026-10-01/ 5 阅读