Python堆中的最小元素

2024-09-22 16:32:54 发布

您现在位置:Python中文网/ 问答频道 /正文

想要获得Python中使用heapq的最小堆元素,下面是我的代码,我想知道使用h[0]是正确的方法还是更优雅的heapq公共API?我试图找到有一个API来获取堆的最小元素,但找不到它。你知道吗

顺便说一句,使用python2。你知道吗

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])

提前谢谢, 林


Tags: 方法代码inimportapi元素forreturn
1条回答
网友
1楼 · 发布于 2024-09-22 16:32:54

把你的iterable列表一次性转换成一堆,用这个。不要循环,使用heapify()函数,heappop(iterable)应该返回第一个索引(最少的数字)

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

相关问题 更多 >