1
Amy 原创整理|资料核验:2026-10-30
Python官方文档定义的最小堆保证父节点不大于子节点,因此heap[0]是最小元素;它没有承诺列表从左到右完全升序。直接打印堆并把结果当作排序输出,容易误读。
教学示例:先对values=[9,2,6]调用heapq.heapify(values),随后heapq.heappop(values)返回2并移除它;如果只想查看最小值,用values[0]即可。heapify会原地修改原列表。
Amy建议:需要反复取最小项目时可考虑堆;只想一次得到完整升序列表,则明确使用排序。空堆调用heappop会抛IndexError,所以消费队列前应处理空队列情况。示例是算法演示,不代表真实任务数据。