Python Glossary English

все Python 3heapqфункция

heapq.nsmallest()

выборка

Возвращает список из n наименьших элементов в порядке возрастания. Принимает key=, как sorted(). При n=1 дешевле min().

Синтаксис

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

Куча на входе не нужна и не используется: функция принимает любое итерируемое и строит собственную внутреннюю структуру. Поэтому вызывать её на списке, который вы уже поддерживаете кучей, бессмысленно — минимум лежит в heap[0] и достаётся за O(1). key, как и в sorted(), считается по одному разу на элемент, так что дорогая функция ключа не пересчитывается при каждом сравнении.

Примеры

import heapq
data = [3, 1, 4, 1, 5, 9, 2, 6]
heapq.nsmallest(3, data) # → [1, 1, 2]
words = ['banana', 'kiwi', 'apple']
heapq.nsmallest(2, words, key=len) # → ['kiwi', 'apple']

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности