Python 堆中的最少元素

minimal elements in heap for Python

想使用 heapq 在 Python 中获取最小堆的最小元素,这是我的代码,想知道使用 h[0] 是正确的方法还是更优雅的方法 public API 对于 heapq?我试图找到是否有一个 API 来获取堆的最小元素,但找不到它。

顺便说一句,使用 Python 2.

import heapq

def heapMin(iterable):
   h = []
   for value in iterable:
       heapq.heappush(h, value)
   return h[0]

if __name__ == "__main__":

   print heapMin([1, 3, 5, 7, 9, 2, 4, 6, 8, 0])

提前致谢, 林

一次性将你的可迭代列表转换为堆,使用它。而不是循环,使用 heapify() 函数和 heappop(iterable) 应该 return 你第一个索引(最小数字)

heapq.heapify(iterable)
print heapq.heappop(iterable)