【随手记】python的heapq库的基本用法

简介: 【随手记】python的heapq库的基本用法

每次用都要问AI,干脆记录一下,多用就熟了。


Python的heapq库是用于实现堆(优先队列)算法的库。它提供了一些函数来操作堆结构,如push、pop、heapify等。


下面是一些heapq库常用函数的说明:


  1. heapq.heappush(heap, item):将元素item推入堆heap中。
  2. heapq.heappop(heap):从堆heap中弹出并返回最小的元素。
  3. heapq.heapify(heap):将列表heap原地转换为一个堆。
  4. heapq.heappushpop(heap, item):将元素item推入堆heap,并弹出并返回堆中最小的元素。
  5. heapq.heapreplace(heap, item):弹出并返回堆heap中最小的元素,然后将元素item推入堆中。
  6. heapq.nsmallest(n, iterable):返回可迭代对象iterable中最小的n个元素。
  7. heapq.nlargest(n, iterable):返回可迭代对象iterable中最大的n个元素。


下面是一个示例代码,演示了如何使用heapq来操作堆:


import heapq
# 创建一个空堆
heap = []
# 向堆中添加元素
heapq.heappush(heap, 5)
heapq.heappush(heap, 2)
heapq.heappush(heap, 7)
heapq.heappush(heap, 3)
# 从堆中弹出并返回最小的元素
smallest = heapq.heappop(heap)
print(smallest)  # 输出: 2
# 将列表转换为堆
nums = [6, 1, 9, 4, 8]
heapq.heapify(nums)
print(nums)  # 输出: [1, 4, 6, 9, 8]
# 弹出并返回堆中最小的元素,然后将元素9推入堆中
smallest = heapq.heapreplace(nums, 9)
print(smallest)  # 输出: 1
print(nums)  # 输出: [4, 8, 6, 9, 9]
# 返回列表中最大的3个元素
largest = heapq.nlargest(3, nums)
print(largest)  # 输出: [9, 9, 8]


目录
相关文章
|
2天前
|
机器学习/深度学习 人工智能 算法
Python在计算机视觉(CV)中扮演重要角色,得益于其丰富的库如OpenCV、Pillow和Scikit-image。
【7月更文挑战第5天】Python在计算机视觉(CV)中扮演重要角色,得益于其丰富的库如OpenCV、Pillow和Scikit-image。CV涉及图像处理、模式识别和机器学习,用于图像理解和生成。Python的跨平台特性和活跃社区使其成为CV的理想工具。基本流程包括图像获取、预处理、特征提取、分类识别及图像生成。例如,面部识别通过预处理图像,使用如`cv2.CascadeClassifier`进行检测;物体检测类似,但需适应不同目标;图像生成则利用GAN创造新图像。
17 4
|
1天前
|
Java 测试技术 开发者
Python:使用标准库编写单元测试
在现代软件开发中,编写单元测试是确保代码质量和可靠性的重要步骤。Python 提供了一个内置的单元测试框架,称为 unittest,它可以帮助开发者方便地编写和运行测试。本文将详细介绍如何使用 unittest 编写单元测试。
|
2天前
|
数据可视化 数据挖掘 API
数据可视化秘籍聚焦Python的Matplotlib和Seaborn库,它们是数据分析的得力工具。
【7月更文挑战第5天】数据可视化秘籍聚焦Python的Matplotlib和Seaborn库,它们是数据分析的得力工具。Matplotlib是基础库,提供高度自定义的2D图表,而Seaborn在其上构建,提供美观的统计图形。文章介绍了如何用两者画线图、散点图、条形图、饼图和直方图,展示数据趋势和关系。
|
4天前
|
存储 JSON 算法
|
5天前
|
Python
Python基本文件操作及os库
以上仅为Python文件操作和os库的基本用法,实际使用中需要根据具体需求进行调整。
9 1
|
6天前
|
Python
Python基本文件操作及os库
以上仅为Python文件操作和os库的基本用法,实际使用中需要根据具体需求进行调整。
10 1
|
2天前
|
存储 消息中间件 数据挖掘
Python实时数据分析:利用丰富的库(如Pandas, PySpark, Kafka)进行流处理,涵盖数据获取、预处理、处理、存储及展示。
【7月更文挑战第5天】Python实时数据分析:利用丰富的库(如Pandas, PySpark, Kafka)进行流处理,涵盖数据获取、预处理、处理、存储及展示。示例代码展示了从Kafka消费数据,计算社交媒体活跃度和物联网设备状态,并可视化结果。适用于监控、故障检测等场景。通过学习和实践,提升实时数据分析能力。
8 0
|
2天前
|
数据采集 数据挖掘 大数据
Pandas是Python数据分析的核心库,基于NumPy,提供DataFrame结构处理结构化数据
【7月更文挑战第5天】Pandas是Python数据分析的核心库,基于NumPy,提供DataFrame结构处理结构化数据。它支持缺失值处理(dropna()、fillna())、异常值检测(Z-Score、IQR法)和重复值管理(duplicated()、drop_duplicates())。此外,数据转换包括类型转换(astype())、数据标准化(Min-Max、Z-Score)以及类别编码(get_dummies())。这些功能使得Pandas成为大数据预处理的强大工具。
|
3天前
|
Python
Python 中 decimal 模块的用法教程
Python 中 decimal 模块的用法教程
5 0
|
5天前
|
机器学习/深度学习 自然语言处理 算法框架/工具
Python的常用库
【7月更文挑战第2天】Python的常用库
6 0