@@ -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
524524def 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
586586try :
0 commit comments