[Python-checkins] Improve clarity (and small speed-up) by using tuple unpacking (#3289)
Raymond Hettinger
webhook-mailer at python.org
Mon Sep 4 14:48:00 EDT 2017
https://github.com/python/cpython/commit/1bfbe78b03e6ee3ee7de938b5e39015dd08b0302
commit: 1bfbe78b03e6ee3ee7de938b5e39015dd08b0302
branch: master
author: Raymond Hettinger <rhettinger at users.noreply.github.com>
committer: GitHub <noreply at github.com>
date: 2017-09-04T11:47:58-07:00
summary:
Improve clarity (and small speed-up) by using tuple unpacking (#3289)
files:
M Lib/heapq.py
diff --git a/Lib/heapq.py b/Lib/heapq.py
index 0b3e89a3a97..b31f4186cf6 100644
--- a/Lib/heapq.py
+++ b/Lib/heapq.py
@@ -498,10 +498,10 @@ def nsmallest(n, iterable, key=None):
for elem in it:
if elem < top:
_heapreplace(result, (elem, order))
- top = result[0][0]
+ top, _order = result[0]
order += 1
result.sort()
- return [r[0] for r in result]
+ return [elem for (elem, order) in result]
# General case, slowest method
it = iter(iterable)
@@ -516,10 +516,10 @@ def nsmallest(n, iterable, key=None):
k = key(elem)
if k < top:
_heapreplace(result, (k, order, elem))
- top = result[0][0]
+ top, _order, _elem = result[0]
order += 1
result.sort()
- return [r[2] for r in result]
+ return [elem for (k, order, elem) in result]
def nlargest(n, iterable, key=None):
"""Find the n largest elements in a dataset.
@@ -559,10 +559,10 @@ def nlargest(n, iterable, key=None):
for elem in it:
if top < elem:
_heapreplace(result, (elem, order))
- top = result[0][0]
+ top, _order = result[0]
order -= 1
result.sort(reverse=True)
- return [r[0] for r in result]
+ return [elem for (elem, order) in result]
# General case, slowest method
it = iter(iterable)
@@ -577,10 +577,10 @@ def nlargest(n, iterable, key=None):
k = key(elem)
if top < k:
_heapreplace(result, (k, order, elem))
- top = result[0][0]
+ top, _order, _elem = result[0]
order -= 1
result.sort(reverse=True)
- return [r[2] for r in result]
+ return [elem for (k, order, elem) in result]
# If available, use C implementation
try:
More information about the Python-checkins
mailing list