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)
想使用 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)