]> granicus.if.org Git - python/commitdiff
Simplify the nlargest() code using heappushpop().
authorRaymond Hettinger <python@rcn.com>
Thu, 13 Mar 2008 19:33:34 +0000 (19:33 +0000)
committerRaymond Hettinger <python@rcn.com>
Thu, 13 Mar 2008 19:33:34 +0000 (19:33 +0000)
Lib/heapq.py

index 23f5fcbfda078ac80442b22099998520e330cdc2..4af9af17717c79e0d3d8f7c941f6dce606e110b9 100644 (file)
@@ -193,13 +193,9 @@ def nlargest(n, iterable):
     if not result:
         return result
     heapify(result)
-    _heapreplace = heapreplace
-    sol = result[0]         # sol --> smallest of the nlargest
+    _heappushpop = heappushpop
     for elem in it:
-        if elem <= sol:
-            continue
-        _heapreplace(result, elem)
-        sol = result[0]
+        heappushpop(result, elem)
     result.sort(reverse=True)
     return result