Skip to content

Commit d5237fa

Browse files
committed
Improve clarity (and small speed-up) by using tuple unpacking
1 parent 3239cf1 commit d5237fa

1 file changed

Lines changed: 8 additions & 8 deletions

File tree

Lib/heapq.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -498,10 +498,10 @@ def nsmallest(n, iterable, key=None):
498498
for elem in it:
499499
if elem < top:
500500
_heapreplace(result, (elem, order))
501-
top = result[0][0]
501+
top, _order = result[0]
502502
order += 1
503503
result.sort()
504-
return [r[0] for r in result]
504+
return [elem for (elem, order) in result]
505505

506506
# General case, slowest method
507507
it = iter(iterable)
@@ -516,10 +516,10 @@ def nsmallest(n, iterable, key=None):
516516
k = key(elem)
517517
if k < top:
518518
_heapreplace(result, (k, order, elem))
519-
top = result[0][0]
519+
top, _order, _elem = result[0]
520520
order += 1
521521
result.sort()
522-
return [r[2] for r in result]
522+
return [elem for (k, order, elem) in result]
523523

524524
def nlargest(n, iterable, key=None):
525525
"""Find the n largest elements in a dataset.
@@ -559,10 +559,10 @@ def nlargest(n, iterable, key=None):
559559
for elem in it:
560560
if top < elem:
561561
_heapreplace(result, (elem, order))
562-
top = result[0][0]
562+
top, _order = result[0]
563563
order -= 1
564564
result.sort(reverse=True)
565-
return [r[0] for r in result]
565+
return [elem for (elem, order) in result]
566566

567567
# General case, slowest method
568568
it = iter(iterable)
@@ -577,10 +577,10 @@ def nlargest(n, iterable, key=None):
577577
k = key(elem)
578578
if top < k:
579579
_heapreplace(result, (k, order, elem))
580-
top = result[0][0]
580+
top, _order, _elem = result[0]
581581
order -= 1
582582
result.sort(reverse=True)
583-
return [r[2] for r in result]
583+
return [elem for (k, order, elem) in result]
584584

585585
# If available, use C implementation
586586
try:

0 commit comments

Comments
 (0)