все Python 3heapqфункция
heapq.nlargest()
выборка
Возвращает список из n наибольших элементов в порядке убывания. Принимает key=, как sorted(). При n≈len(iterable) дешевле обычный sorted().
Синтаксис
heapq.nlargest(n, iterable, key=None)
Проходит итерируемое один раз и держит в памяти только n элементов, так что генератор или огромный файл её не смущают; стоимость — порядка m·log n, где m — длина потока. Оба края диапазона дешевле закрывать иначе: n=1 — это max(), а n, сравнимое с длиной данных, — обычный sorted(). Равные по key элементы сохраняют исходный порядок, как у sorted().
Примеры
import heapq
data = [3, 1, 4, 1, 5, 9, 2, 6]
heapq.nlargest(3, data) # → [9, 6, 5]
records = [{'v': 5}, {'v': 1}, {'v': 9}]
heapq.nlargest(2, records, key=lambda x: x['v'])
# → [{'v': 9}, {'v': 5}]
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности