FEMM 5

Модули и функции · встроенный MicroPython FEMM 5

heapq

Минимальная куча и выбор экстремальных результатов.

Условия работы

heapq.heapifyПреобразует список в минимальную кучу на месте.

heapq.heapify

heapify(x)

Преобразует список в минимальную кучу на месте.

Аргументы

Аргументы вызова heapq.heapify
ИмяНазначение и допустимые значения
xИзменяемый список.

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

None.

Пример

MicroPython FEMM 5
"Пример 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)

Добавляет элемент с сохранением кучи.

Аргументы

Аргументы вызова heapq.heappush
ИмяНазначение и допустимые значения
heapСписок с инвариантом кучи.
itemДобавляемый сравнимый элемент.

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

None.

Пример

MicroPython FEMM 5
"Пример 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.

Аргументы

Аргументы вызова heapq.heappop
ИмяНазначение и допустимые значения
heapНепустая минимальная куча.

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

Минимальный элемент; удаляется из heap.

Пример

MicroPython FEMM 5
"Пример 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.

Аргументы

Аргументы вызова heapq.heapreplace
ИмяНазначение и допустимые значения
heapНепустая куча.
itemНовое значение.

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

Прежний минимум.

Пример

MicroPython FEMM 5
"Пример 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)

Совмещает добавление и извлечение.

Аргументы

Аргументы вызова heapq.heappushpop
ИмяНазначение и допустимые значения
heapКуча.
itemНовое значение.

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

Минимум из item и содержимого кучи.

Пример

MicroPython FEMM 5
"Пример 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)

Выбирает максимальные значения, например пики потерь.

Аргументы

Аргументы вызова heapq.nlargest
ИмяНазначение и допустимые значения
nЧисло результатов.
iterableИсходные данные.
keyФункция ключа или None.

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

Список n наибольших элементов по убыванию.

Пример

MicroPython FEMM 5
"Пример 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)

Выбирает лучшие варианты по минимизируемому критерию.

Аргументы

Аргументы вызова heapq.nsmallest
ИмяНазначение и допустимые значения
nЧисло результатов.
iterableИсходные данные.
keyФункция ключа или None.

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

Список n наименьших элементов по возрастанию.

Пример

MicroPython FEMM 5
"Пример 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).

Аргументы

Аргументы вызова heapq.merge
ИмяНазначение и допустимые значения
iterablesУже отсортированные по возрастанию потоки.

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

AttributeError при вызове в проверенной сборке.

Пример

MicroPython FEMM 5
"Пример 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 учитывайте условия этого раздела.