Python中的最小元素

时间:2015-12-06 08:28:00

标签: python heap

想要使用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])
提前谢谢, 林

1 个答案:

答案 0 :(得分:1)

将可迭代列表一次性转换为堆,使用此方法。使用heapify()函数而不是循环,而heappop(iterable)应该返回第一个索引(最小数字)

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