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 自动化
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站