Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

python heapq

作者:仯孒①個亾哋杺¢涳孒   发布日期:2025-10-13   浏览:34

import heapq

# 创建一个空的最小堆
min_heap = []

# 向堆中添加元素
heapq.heappush(min_heap, 3)
heapq.heappush(min_heap, 1)
heapq.heappush(min_heap, 4)
heapq.heappush(min_heap, 1)

# 查看堆顶元素(最小值)
print("堆顶元素(最小值):", min_heap[0])  # 输出: 1

# 弹出堆顶元素(最小值)
min_value = heapq.heappop(min_heap)
print("弹出的最小值:", min_value)  # 输出: 1

# 查看当前堆顶元素
print("当前堆顶元素:", min_heap[0])  # 输出: 1 (因为有两个1,所以弹出后还有一个1在堆顶)

# 将列表转换为堆
list_to_heap = [3, 1, 4, 1, 5, 9, 2]
heapq.heapify(list_to_heap)
print("转换后的堆:", list_to_heap)  # 输出: [1, 1, 2, 3, 5, 9, 4]

# 获取堆中的前n个最小元素
n_smallest = heapq.nsmallest(3, list_to_heap)
print("堆中的前3个最小元素:", n_smallest)  # 输出: [1, 1, 2]

# 获取堆中的前n个最大元素
n_largest = heapq.nlargest(3, list_to_heap)
print("堆中的前3个最大元素:", n_largest)  # 输出: [9, 5, 4]

解释说明:

  • heapq 是 Python 标准库中的一个模块,提供了堆队列算法的实现,通常用于实现优先队列。
  • heappush(heap, item):将 item 添加到堆 heap 中,并保持堆的性质。
  • heappop(heap):弹出并返回堆中的最小元素(堆顶元素),并保持堆的性质。
  • heapify(x):将列表 x 转换为堆。
  • nsmallest(n, iterable)nlargest(n, iterable):分别返回可迭代对象中最小和最大的 n 个元素。

上一篇:python or

下一篇:python 自动化

大家都在看

python时间格式

python读取文件路径

staticmethod在python中有

python开发windows应用程序

python中len是什么意思

python ord和chr

python中的yield

python自定义异常

python判断路径是否存在

python list.pop

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站