Python Glossary English

все 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Сообщить о неточности