PythiloLesson 7 of 8 · progress kept in this browser

Keep only the largest k values

Sorting every value is unnecessary when the answer contains only a few winners. A small min-heap keeps the largest k values seen so far; its smallest value is the easiest winner to replace. Python's heapq.nlargest implements this selection for any iterable. Duplicates still count as separate observations unless the task says otherwise.

import heapq
print(heapq.nlargest(2, iter([3, 9, 1, 7])))
Your task

Write largest_values(values, k), returning up to k largest numbers in descending order, preserving duplicates. Accept a one-pass iterable. Return [] when k <= 0.