import heapq
print(heapq.__all__)
# ['heappush', 'heappop', 'heapify', 'heapreplace', 'merge', 'nlargest', 'nsmallest', 'heappushpop']
'''
heappush(heap, item):将 item 元素加入堆。
heappop(heap):将堆中最小元素弹出。
heapify(heap):将堆属性应用到列表上。
heapreplace(heap, x):将堆中最小元素弹出,并将元素x 入堆。
merge(*iterables, key=None, reverse=False):将多个有序的堆合并成一个大的有序堆,然后再输出。
heappushpop(heap, item):将item 入堆,然后弹出并返回堆中最小的元素。
nlargest(n, iterable, key=None):返回堆中最大的 n 个元素。
nsmallest(n, iterable, key=None):返回堆中最小的 n 个元素。
'''
my_data = list(range(10))
my_data.append(0.5)
print(my_data) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0.5]
heapq.heapify(my_data) # 将堆属性作用于my_data上
print(my_data) # [0, 0.5, 2, 3, 1, 5, 6, 7, 8, 9, 4]
heapq.heappush(my_data, 3.5)
print(my_data) # [0, 0.5, 2, 3, 1, 3.5, 6, 7, 8, 9, 4, 5]
res = heapq.heappop(my_data) # 弹出堆中最小的元素
print(res) # 0
heapq.heapreplace(my_data, 1.5) # 弹出最小的元素,并将1.5压入堆中
print(my_data) # [1, 1.5, 2, 3, 4, 3.5, 6, 7, 8, 9, 5]
print(heapq.nlargest(3, [1,2,3,4,5,6])) # [6, 5, 4]
print(heapq.nsmallest(3, [1,2,3,4,5,6])) # [1, 2, 3]
python模块---heapq
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- heapq 实现了适用于 Python 列表的最小堆排序算法。 堆是一个树状的数据结构,其中的子节点与父节点属于排...
- 本人对于Python学习创建了一个小小的学习圈子,为各位提供了一个平台,大家一起来讨论学习Python。欢迎各位到...