Функция nlargest()
Функция nlargest() модуля heapq возвращает список с n самыми большими элементами из набора данных, определенного с помощью итерируемой последовательности iterable.
Аргумент key, если он указан, определяет функцию с одним аргументом, которая используется для извлечения ключа сравнения из каждого элемента в итерируемой последовательности iterable, например key=str.lower. Значением по умолчанию является None, что означает сравнение элементов напрямую.
Функция nlargest() эквивалентна вызову sorted(iterable, key=key, reverse=True)[:n].
Работает лучше для маленьких значений n. Для больших значений более эффективно использовать функцию sorted(). Также, когда n=1, более эффективно использовать встроенную функцию max().
Если требуется повторное использование функции heapq.nlargest(), рассмотрите возможность преобразования последовательности iterable в реальную кучу.