Модули и функции · встроенный MicroPython FEMM 5
heapq
Минимальная куча и выбор экстремальных результатов.
Условия работы
- Куча хранится в обычном списке. heap[0] — минимум. Элементы должны поддерживать сравнение.
heapq.heapifyheapq.heappushheapq.heappopheapq.heapreplaceheapq.heappushpopheapq.nlargestheapq.nsmallestheapq.mergeheapq.heapifyПреобразует список в минимальную кучу на месте.
heapq.heapify
heapify(x)Преобразует список в минимальную кучу на месте.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
x | Изменяемый список. |
Возвращаемое значение
None.
Пример
"Пример heapq.heapify.\nСреда: встроенный MicroPython FEMM 5.\nПреобразует список в минимальную кучу на месте.\nРезультат: None."
import heapq
h=[3,1,2]
heapq.heapify(h)
assert h[0] == 1
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
heapq.heappushДобавляет элемент с сохранением кучи.
heapq.heappush
heappush(heap, item)Добавляет элемент с сохранением кучи.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
heap | Список с инвариантом кучи. |
item | Добавляемый сравнимый элемент. |
Возвращаемое значение
None.
Пример
"Пример heapq.heappush.\nСреда: встроенный MicroPython FEMM 5.\nДобавляет элемент с сохранением кучи.\nРезультат: None."
import heapq
h=[1,3]
heapq.heappush(h,2)
assert heapq.heappop(h) == 1
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
heapq.heappopИзвлекает наименьшее значение; пустая куча вызывает IndexError.
heapq.heappop
heappop(heap)Извлекает наименьшее значение; пустая куча вызывает IndexError.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
heap | Непустая минимальная куча. |
Возвращаемое значение
Минимальный элемент; удаляется из heap.
Пример
"Пример heapq.heappop.\nСреда: встроенный MicroPython FEMM 5.\nИзвлекает наименьшее значение; пустая куча вызывает IndexError.\nРезультат: Минимальный элемент; удаляется из heap."
import heapq
h=[1,3,2]
assert heapq.heappop(h) == 1
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
heapq.heapreplaceСначала удаляет минимум, затем вставляет item.
heapq.heapreplace
heapreplace(heap, item)Сначала удаляет минимум, затем вставляет item.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
heap | Непустая куча. |
item | Новое значение. |
Возвращаемое значение
Прежний минимум.
Пример
"Пример heapq.heapreplace.\nСреда: встроенный MicroPython FEMM 5.\nСначала удаляет минимум, затем вставляет item.\nРезультат: Прежний минимум."
import heapq
h=[1,3,2]
assert heapq.heapreplace(h,4) == 1
assert h[0] == 2
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
heapq.heappushpopСовмещает добавление и извлечение.
heapq.heappushpop
heappushpop(heap, item)Совмещает добавление и извлечение.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
heap | Куча. |
item | Новое значение. |
Возвращаемое значение
Минимум из item и содержимого кучи.
Пример
"Пример heapq.heappushpop.\nСреда: встроенный MicroPython FEMM 5.\nСовмещает добавление и извлечение.\nРезультат: Минимум из item и содержимого кучи."
import heapq
h=[2,3]
assert heapq.heappushpop(h,1) == 1
assert h[0] == 2
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
heapq.nlargestВыбирает максимальные значения, например пики потерь.
heapq.nlargest
nlargest(n, iterable, key=None)Выбирает максимальные значения, например пики потерь.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
n | Число результатов. |
iterable | Исходные данные. |
key | Функция ключа или None. |
Возвращаемое значение
Список n наибольших элементов по убыванию.
Пример
"Пример heapq.nlargest.\nСреда: встроенный MicroPython FEMM 5.\nВыбирает максимальные значения, например пики потерь.\nРезультат: Список n наибольших элементов по убыванию."
import heapq
assert heapq.nlargest(2,[3,1,5,2]) == [5,3]
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
heapq.nsmallestВыбирает лучшие варианты по минимизируемому критерию.
heapq.nsmallest
nsmallest(n, iterable, key=None)Выбирает лучшие варианты по минимизируемому критерию.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
n | Число результатов. |
iterable | Исходные данные. |
key | Функция ключа или None. |
Возвращаемое значение
Список n наименьших элементов по возрастанию.
Пример
"Пример heapq.nsmallest.\nСреда: встроенный MicroPython FEMM 5.\nВыбирает лучшие варианты по минимизируемому критерию.\nРезультат: Список n наименьших элементов по возрастанию."
import heapq
assert heapq.nsmallest(2,[3,1,5,2]) == [1,2]
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
heapq.mergeПри полном переборе непустого слияния реализация обращается к отсутствующему __self__ встроенного bound_method. Для небольших серий используйте sorted(list1+list2).
heapq.merge
merge(*iterables)При полном переборе непустого слияния реализация обращается к отсутствующему __self__ встроенного bound_method. Для небольших серий используйте sorted(list1+list2).
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
iterables | Уже отсортированные по возрастанию потоки. |
Возвращаемое значение
AttributeError при вызове в проверенной сборке.
Пример
"Пример heapq.merge.\nСреда: встроенный MicroPython FEMM 5.\nПри полном переборе непустого слияния реализация обращается к отсутствующему __self__ встроенного bound_method. Для небольших серий используйте sorted(list1+list2).\nРезультат: AttributeError при вызове в проверенной сборке."
import heapq
try:
list(heapq.merge([1,3],[2,4]))
except AttributeError:
pass
else:
raise AssertionError("expected AttributeError")
Ожидаемый результат. Получено и перехвачено ожидаемое исключение AttributeError.
Скачать пример · Ссылка на функцию
Нативная проверка описанного ограничения выполнена; ожидаемая ошибка или особенность подтверждена.
Имена в установленной сборке
Перечень получен во встроенном интерпретаторе. Он включает функции, классы и константы. Ссылки ведут к контрактам; для прямого доступа ulab учитывайте условия этого раздела.