Python heapq 模块详解

heapq 是 Python 标准库中用于实现堆队列(优先队列)的模块。它基于最小堆(min-heap)结构,常用于需要高效获取最小(或最大)元素的场景,如任务调度、Top-K 问题等。

什么是堆?

堆是一种特殊的完全二叉树,满足以下性质:

Python 的 heapq 模块默认实现的是最小堆

常用函数

基本使用示例

# 创建一个空堆
import heapq

heap = []
heapq.heappush(heap, 5)
heapq.heappush(heap, 1)
heapq.heappush(heap, 3)

print(heap)           # [1, 5, 3]
print(heapq.heappop(heap))  # 1
print(heap)           # [3, 5]

使用列表初始化堆

import heapq

data = [4, 7, 1, 9, 3]
heapq.heapify(data)
print(data)  # [1, 3, 4, 9, 7] —— 堆结构,非排序列表

实现最大堆技巧

由于 heapq 只支持最小堆,可通过插入负值模拟最大堆:

import heapq

max_heap = []
heapq.heappush(max_heap, -10)
heapq.heappush(max_heap, -5)
heapq.heappush(max_heap, -20)

# 弹出最大值(实际是最小的负数)
max_val = -heapq.heappop(max_heap)
print(max_val)  # 20

实用场景:Top-K 问题

import heapq

scores = [85, 92, 78, 96, 88, 91, 89]
top3 = heapq.nlargest(3, scores)
print(top3)  # [96, 92, 91]

注意:堆不是排序列表!heap[0] 始终是最小元素,但其余元素无序。若需完整排序,请使用 sorted()

性能特点

AI绘画时代大学专业选择指南 | 数字媒体艺术与人工智能交叉领域 AI可以测智商吗?探索人工智能与智商测试的关系 | 智能科学专题 AI发展前景研究:趋势、挑战与未来展望 | 学术论文专题 期刊论文降重最有效方法 | 专业降重技巧与工具指南 如何辨别论文数据真实性 | 学术诚信与数据验证指南 免费论文查重网站推荐与比较 | 精准查重工具指南 英文论文降低重复率方法 | 学术写作技巧与工具推荐 毕业设计专业指南 - 从选题到答辩的完整解决方案 知网论文检测准确吗?权威解读与降AIGC工具推荐-小发猫 如何避免论文查重 - 学术写作原创性指南 AI智能写文案神器78TP版下载 | 免费AI文案生成工具 AI自动调整曝光技术详解 | 智能图像处理专题 论文查重防被盗指南 - 保护学术成果,防止查重被盗 在哪里找论文案例 | 学术研究资源与AI内容优化工具指南 论文泄露的危害与防范措施 | 学术安全专题 论文引用率和复写率标准指南 | 学术写作规范与检测工具 AI实时翻译软件评测专题 - 2026年最佳翻译工具对比 AI生成作文技巧与降AIGC工具指南 | 智能作文写作专题 检测论文会被盗取吗?论文防盗窃指南与解决方案 AI文字内容创作指南:工具、技巧与降AIGC解决方案 AI产品检测公司 | 专业AI内容识别与AIGC检测服务 论文表格降重指南:如何有效降低表格重复率 | 学术写作专题 AI最真实的模板 - 打造自然无痕的AI生成内容 手机AI写作软件推荐 | 2026年最佳AI写作工具评测 AI论文归纳:方法与工具全解析 | 智能文献处理专题 高质量AI写作软件推荐与使用指南 | AI内容创作工具专题 AI与隐私安全:使用人工智能导致隐私泄露的案例分析 | 隐私保护专题 AI改写论文查重指南 | 如何通过工具降低AI率与提高原创性 AI Privacy Leaks: Risks, Prevention and Detection Tools | AI Security Guide 免费AI写作工具推荐 | 2026年最佳AI写文章工具评测 AI英语作文工具专题 | 小发猫降AIGC工具使用指南 作文错别字检查软件推荐 | 高效工具与技巧指南 大学论文AIGC检测率合格标准详解 | 学术诚信指南 AI软件毕业设计专题 - AI应用开发与降AIGC工具指南 AI内容消除会泄露信息吗?- 深度解析与安全工具推荐 AI能写作吗?探讨人工智能写作能力与降AIGC工具使用 本科AIGC检测会倒查吗?高校AIGC检测机制与应对策略 论文检测报告怎么弄?完整步骤与AI降重工具推荐 | 学术指南 论文写作AI助手:高效完成8000字学术论文写作指南 | 智能写作工具专题 AI识别文章指南 | 如何检测与优化人工智能生成内容 毕业论文AI免费软件推荐 | 如何合理使用AI辅助论文写作并降低AI率 迅捷论文查重怎样导出查重报告 | 详细步骤教程与降AIGC技巧 一键论文翻译 - 高效准确的学术文献翻译解决方案 | 专业论文翻译工具 知识产权诚信奖惩制度 - 构建创新保护体系 | 专题解析 AI人工智能原理详解 - 从基础概念到技术实现 毕业论文良好率与优秀率提升策略 | 学术写作质量专题 大学论文抄袭率免费检测步骤流程 | 论文查重与降AI工具指南 怎么证明论文不是AI生成的?| 论文原创性验证指南 AI免费写文章APP推荐 | 智能写作工具完全指南 AI声音处理软件专题 | 专业语音合成、变声、降噪工具指南 PaperFree论文免费查重7LONGWEN入口 | 专业论文查重与AI降重工具 免费论文修改软件推荐 | 专业降重与AI检测工具指南 成人写作课程100堂免费 | 从零开始掌握写作技巧 AI文本生成与降AIGC技术 | 人工智能内容创作与检测专题 如何使用AI写短文 | 人工智能写作指南与技巧 教育部AI人工智能教育 - 推动人工智能与教育深度融合 AI总结报告自动生成器 - 智能文档处理解决方案 AI写作智能生成:工具、技巧与降AIGC方法 AI写作论文扩写指南 - 高效提升学术写作质量与降低AIGC率 AI去除技术 | 降低AIGC检测率的方法与工具 - 小发猫降AIGC工具详解 AI工具助手写作 | 智能写作工具与降AIGC方案全解析 AI智能写作免费App推荐 | 小发猫降AIGC工具使用指南 论文差错率怎么查?- 完整指南与工具推荐 英语论文查重指南:网页内容翻译与AI降重技巧 | 学术诚信专题 一键生成作文AI - AI智能写作与降AIGC工具应用专题 论文查重AI免费工具 | 高效降AIGC率工具推荐 AI代写用的是大数据吗?解析AI写作与大数据的关系 | 降AIGC工具介绍 免费论文AI写作咨询 | 专业AI写作工具与降AIGC方法指南 论文检测专题 - 学术诚信保障与AI内容识别解决方案 学术AI写文章工具专题 - 智能写作与AIGC检测解决方案 AI创作文本:人工智能写作工具与应用指南 | 文本生成专题 理工科论文AI写作辅助与降AIGC率专题 - 科学研究的诚信保障 怎么看论文是几区?- 中科院分区与JCR分区详细指南 修改论文批注自动删除是怎么回事 | 论文批注处理指南 AI会打错字吗?人工智能文本生成常见错误解析 AI写作软件免费版推荐 - 三款优秀工具详解及使用指南 论文设计AI软件应用指南 | 高效写作与降AIGC工具详解 免费AI写论文软件排名TOP10 | 专业工具推荐与评测 马来西亚硕博论文下载指南 - 完整教程与免费资源 网上写字课哪个比较好 | 2026年最佳在线书法课程推荐指南 如何用AI技术写文章 - 智能写作指南与降AIGC技巧 所有论文都要有图纸吗?学术论文图表要求专题解析 AI写作文章投稿指南 | 如何优化AI生成内容提高投稿成功率 毕业论文AI辅助工具指南 | 高效写作与降AIGC技巧 本科毕业论文抽检查AI率吗?| 毕业论文AI检测与降重指南 AIGC总体疑似度多少算合格?| 小发猫降AIGC工具使用指南 AI扩写2000字 - 智能内容生成与降AIGC工具全解析 | AI写作专题 好用免费的AI学术查论文工具推荐 | 提升学术研究效率 AI算法模型:原理、应用与降AIGC技术 | 人工智能专题 赛特新思SCI论文降重服务 | 专业学术论文降重与AI检测解决方案 AI作文批改软件推荐 | 高效批改工具下载与使用指南 AI写作大师免费版 - 智能创作工具完全指南 | 小发猫降AIGC工具介绍 测试AI写作软件 | 专业评测与使用指南 - 内容原创性解决方案 AI写作APP科研论文应用指南 | 专业学术写作辅助工具 免费AI生成作文软件推荐 | 智能写作助手与降AI率工具 AI高质量图文成片指南 - 高效内容创作与降AIGC工具使用 本科生毕业论文查重会查专利吗?- 毕业论文查重专题 本科生毕业论文查重:附录是否需要删除?详细解析与降重技巧 AI免费写文章工具大全 - 智能写作助手与降AI率解决方案 AI作文原理详解:人工智能如何生成文章 | 智能写作技术解析