Сообщить об ошибке.

Функция nsmallest() модуля heapq в Python

Получить n наименьших элементов из набора данных

Синтаксис:

import heapq

heapq.nsmallest(n, iterable, key=None)

Параметры:

  • n - int, количество наименьших элементов,
  • iterable - итерируемая последовательность,
  • key=None - функцию с одним аргументом.

Возвращаемое значение:

Описание:

Функция nsmallest() модуля heapq возвращает список с n наименьшими элементами из набора данных, определенного с помощью итерируемой последовательности iterable.

Аргумент key, если он указан, определяет функцию с одним аргументом, которая используется для извлечения ключа сравнения из каждого элемента в итерируемой последовательности iterable, например key=str.lower. Значением по умолчанию является None, что означает сравнение элементов напрямую.

Функция nsmallest() эквивалентна вызову sorted(iterable, key=key)[:n].

Работает лучше для маленьких значений n. Для больших значений более эффективно использовать функцию sorted(). Также, когда n=1, более эффективно использовать встроенную функцию min().

Если требуется повторное использование функции heapq.nsmallest(), рассмотрите возможность преобразования последовательности iterable в реальную кучу.

Примеры использования:

>>> import heapq
>>> seq = [100, 2, 400, 500, 400]
>>> heapq.nsmallest(2, seq)
# [2, 100]
>>> heapq.nsmallest(2, enumerate(seq), key=lambda x: x[1])
# [(1, 2), (0, 100)]