擅长:python、mysql、java
<p>你展示的一般技巧既简单又有效。但你在做一些不必要的额外任务。下面是一个小优化。你知道吗</p>
<pre><code>elements = []
k1, v1 = heapq.heappop(heap)
elements.append((k1,v1))
while(k1 == heap[0]):
k2, v2 = heapq.heappop(heap)
elements.append((k2,v2))
return elements
</code></pre>
<p>为了安全起见,您可能应该添加检查以确保堆不是空的。当堆中没有项时检查<code>heap[0]</code>是件坏事,如果堆为空则调用<code>heapq.heappop</code>也是件坏事。你知道吗</p>