summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2014-06-02 06:40:01 (GMT)
committerRaymond Hettinger <python@rcn.com>2014-06-02 06:40:01 (GMT)
commit450ed10c5ee68c2cd6d74a98e3a9a07cdfb88bc0 (patch)
tree95dfd05ae8331456809cdc9e03ea197e610cffcc
parent68b272b4773137fbb92db2ffc9ccee381031c4ac (diff)
downloadcpython-450ed10c5ee68c2cd6d74a98e3a9a07cdfb88bc0.zip
cpython-450ed10c5ee68c2cd6d74a98e3a9a07cdfb88bc0.tar.gz
cpython-450ed10c5ee68c2cd6d74a98e3a9a07cdfb88bc0.tar.bz2
Minor clean-ups.
-rw-r--r--Lib/heapq.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/Lib/heapq.py b/Lib/heapq.py
index 79b46fe..4f71ebf 100644
--- a/Lib/heapq.py
+++ b/Lib/heapq.py
@@ -397,7 +397,7 @@ def merge(*iterables, key=None, reverse=False):
except StopIteration:
_heappop(h)
if h:
- key_value, order, value, next = h[0]
+ key_value, order, value, next = h[0]
yield value
yield from next.__self__
@@ -413,7 +413,7 @@ def merge(*iterables, key=None, reverse=False):
# number of comparisons
# n inputs k-extreme values (average of 5 trials) % more than min()
# ------------- ---------------- --------------------- -----------------
-# 1,000 100 3,317 133.2%
+# 1,000 100 3,317 233.2%
# 10,000 100 14,046 40.5%
# 100,000 100 105,749 5.7%
# 1,000,000 100 1,007,751 0.8%
@@ -496,6 +496,8 @@ def nsmallest(n, iterable, key=None):
# When key is none, use simpler decoration
if key is None:
it = iter(iterable)
+ # put the range(n) first so that zip() doesn't
+ # consume one too many elements from the iterator
result = [(elem, i) for i, elem in zip(range(n), it)]
if not result:
return result
@@ -594,4 +596,4 @@ def nlargest(n, iterable, key=None):
if __name__ == "__main__":
import doctest
- doctest.testmod()
+ print(doctest.testmod())