想要使用heapq在Python中获取最小堆的最小元素,这是我的代码,并想知道使用h [0]是正确的方法还是更优雅的heapq公共API?我试图找到有一个API来获取堆的最小元素,但无法找到它。
BTW,使用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])
提前谢谢,
林
答案 0 :(得分:1)
将可迭代列表一次性转换为堆,使用此方法。使用heapify()
函数而不是循环,而heappop(iterable)
应该返回第一个索引(最小数字)
heapq.heapify(iterable)
print heapq.heappop(iterable)