Модули и функции · встроенный MicroPython FEMM 5
itertools
Построение и обработка серий параметров через итераторы.
Условия работы
- count, cycle и repeat без ограничения бесконечны: ограничивайте их islice или условием выхода.
- product в этой реализации заранее строит комбинации в памяти; для больших сеток используйте вложенные циклы.
- groupby группирует только соседние равные ключи; группу надо прочитать до перехода к следующему ключу.
itertools.countitertools.cycleitertools.repeatitertools.chainitertools.isliceitertools.teeitertools.starmapitertools.accumulateitertools.groupbyitertools.productitertools.permutationsitertools.combinationsitertools.compressitertools.filterfalseitertools.takewhileitertools.dropwhileitertools.zip_longestitertools.countГенерирует арифметическую последовательность.
itertools.count
count(start=0, step=1)Генерирует арифметическую последовательность.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
start | Начальное число. |
step | Приращение. |
Возвращаемое значение
Бесконечный итератор чисел.
Пример
"Пример itertools.count.\nСреда: встроенный MicroPython FEMM 5.\nГенерирует арифметическую последовательность.\nРезультат: Бесконечный итератор чисел."
import itertools
assert list(itertools.islice(itertools.count(10,5),3)) == [10,15,20]
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
itertools.cycleПовторяет сохранённую последовательность.
itertools.cycle
cycle(p)Повторяет сохранённую последовательность.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
p | Конечный исходный итерируемый объект; элементы запоминаются. |
Возвращаемое значение
Циклический итератор.
Пример
"Пример itertools.cycle.\nСреда: встроенный MicroPython FEMM 5.\nПовторяет сохранённую последовательность.\nРезультат: Циклический итератор."
import itertools
assert list(itertools.islice(itertools.cycle([0,90]),5)) == [0,90,0,90,0]
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
itertools.repeatПовторяет постоянный параметр.
itertools.repeat
repeat(el, n=None)Повторяет постоянный параметр.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
el | Повторяемый объект. |
n | Число повторов; None означает бесконечно. |
Возвращаемое значение
Итератор повторных ссылок на el.
Пример
"Пример itertools.repeat.\nСреда: встроенный MicroPython FEMM 5.\nПовторяет постоянный параметр.\nРезультат: Итератор повторных ссылок на el."
import itertools
assert list(itertools.repeat(50,3)) == [50,50,50]
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
itertools.chainСоединяет серии без промежуточного общего списка.
itertools.chain
chain(*p)Соединяет серии без промежуточного общего списка.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
p | Последовательности для последовательного объединения. |
Возвращаемое значение
Итератор элементов всех входов.
Пример
"Пример itertools.chain.\nСреда: встроенный MicroPython FEMM 5.\nСоединяет серии без промежуточного общего списка.\nРезультат: Итератор элементов всех входов."
import itertools
assert list(itertools.chain([1,2],[3])) == [1,2,3]
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
itertools.isliceОграничивает поток; пропущенные элементы также потребляются.
itertools.islice
islice(p, start, stop=(), step=1)Ограничивает поток; пропущенные элементы также потребляются.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
p | Исходный итератор. |
start | Начало либо stop при двухаргументном вызове. |
stop | Исключающая граница; служебное () обозначает короткую форму. |
step | Положительный шаг. |
Возвращаемое значение
Итератор выбранных элементов.
Пример
"Пример itertools.islice.\nСреда: встроенный MicroPython FEMM 5.\nОграничивает поток; пропущенные элементы также потребляются.\nРезультат: Итератор выбранных элементов."
import itertools
assert list(itertools.islice(range(10),2,8,2)) == [2,4,6]
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
itertools.teeВ этой поставке не создаёт независимые ветви: чтение одной ветви расходует элементы для остальных. Для повторного независимого обхода сохраните list(iterable).
itertools.tee
tee(iterable, n=2)В этой поставке не создаёт независимые ветви: чтение одной ветви расходует элементы для остальных. Для повторного независимого обхода сохраните list(iterable).
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
iterable | Исходный поток. |
n | Число независимых итераторов. |
Возвращаемое значение
Список n ссылок на ОДИН общий итератор.
Пример
"Пример itertools.tee.\nСреда: встроенный MicroPython FEMM 5.\nВ этой поставке не создаёт независимые ветви: чтение одной ветви расходует элементы для остальных. Для повторного независимого обхода сохраните list(iterable).\nРезультат: Список n ссылок на ОДИН общий итератор."
import itertools
a,b=itertools.tee([1,2])
assert a is b
assert list(a) == [1,2] and list(b) == []
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Нативная проверка описанного ограничения выполнена; ожидаемая ошибка или особенность подтверждена.
itertools.starmapВычисляет выражение для каждой пары/строки параметров.
itertools.starmap
starmap(function, iterable)Вычисляет выражение для каждой пары/строки параметров.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
function | Функция для аргументов каждой записи. |
iterable | Поток кортежей аргументов. |
Возвращаемое значение
Итератор результатов вызовов function(*row).
Пример
"Пример itertools.starmap.\nСреда: встроенный MicroPython FEMM 5.\nВычисляет выражение для каждой пары/строки параметров.\nРезультат: Итератор результатов вызовов function(*row)."
import itertools
assert list(itertools.starmap(lambda a,b:a*b,[(2,3),(4,5)])) == [6,20]
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
itertools.accumulateСтроит накопленную сумму или другое последовательное свёртывание.
itertools.accumulate
accumulate(iterable, func=lambda x,y:x+y)Строит накопленную сумму или другое последовательное свёртывание.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
iterable | Поток значений. |
func | Функция накопления двух аргументов. |
Возвращаемое значение
Итератор промежуточных накопленных значений.
Пример
"Пример itertools.accumulate.\nСреда: встроенный MicroPython FEMM 5.\nСтроит накопленную сумму или другое последовательное свёртывание.\nРезультат: Итератор промежуточных накопленных значений."
import itertools
assert list(itertools.accumulate([1,2,3])) == [1,3,6]
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
itertools.groupbyРазделяет отсортированные результаты по параметру.
itertools.groupby
groupby(iterable, key=None)Разделяет отсортированные результаты по параметру.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
iterable | Поток с соседними записями одной группы. |
key | Функция ключа либо None для самого значения. |
Возвращаемое значение
Итератор пар (ключ, итератор группы).
Пример
"Пример itertools.groupby.\nСреда: встроенный MicroPython FEMM 5.\nРазделяет отсортированные результаты по параметру.\nРезультат: Итератор пар (ключ, итератор группы)."
import itertools
rows=[(10,1),(10,2),(20,3)]
groups=[(k,list(g)) for k,g in itertools.groupby(rows,lambda r:r[0])]
assert len(groups) == 2 and len(groups[0][1]) == 2
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
itertools.productФормирует комбинации тока и угла для серии FEMM.
itertools.product
product(*iterables, repeat=1)Формирует комбинации тока и угла для серии FEMM.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
iterables | Конечные наборы каждого независимого параметра. |
repeat | Сколько раз повторить весь набор входов. |
Возвращаемое значение
Итератор кортежей декартова произведения.
Пример
"Пример itertools.product.\nСреда: встроенный MicroPython FEMM 5.\nФормирует комбинации тока и угла для серии FEMM.\nРезультат: Итератор кортежей декартова произведения."
import itertools
assert list(itertools.product([1,2],[0,90])) == [(1,0),(1,90),(2,0),(2,90)]
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
itertools.permutationsПеребирает упорядоченные варианты без повторного использования позиции.
itertools.permutations
permutations(iterable, r=None)Перебирает упорядоченные варианты без повторного использования позиции.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
iterable | Конечный набор элементов. |
r | Длина перестановки, None использует весь набор. |
Возвращаемое значение
Итератор кортежей перестановок.
Пример
"Пример itertools.permutations.\nСреда: встроенный MicroPython FEMM 5.\nПеребирает упорядоченные варианты без повторного использования позиции.\nРезультат: Итератор кортежей перестановок."
import itertools
assert list(itertools.permutations([1,2],2)) == [(1,2),(2,1)]
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
itertools.combinationsВыбирает неупорядоченные поднаборы по позиции.
itertools.combinations
combinations(iterable, r)Выбирает неупорядоченные поднаборы по позиции.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
iterable | Исходный набор. |
r | Количество элементов комбинации. |
Возвращаемое значение
Итератор кортежей сочетаний.
Пример
"Пример itertools.combinations.\nСреда: встроенный MicroPython FEMM 5.\nВыбирает неупорядоченные поднаборы по позиции.\nРезультат: Итератор кортежей сочетаний."
import itertools
assert list(itertools.combinations([1,2,3],2)) == [(1,2),(1,3),(2,3)]
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
itertools.compressОтбирает расчёты по маске годности.
itertools.compress
compress(data, selectors)Отбирает расчёты по маске годности.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
data | Исходные значения. |
selectors | Соответствующие логические флаги. |
Возвращаемое значение
Итератор выбранных значений.
Пример
"Пример itertools.compress.\nСреда: встроенный MicroPython FEMM 5.\nОтбирает расчёты по маске годности.\nРезультат: Итератор выбранных значений."
import itertools
assert list(itertools.compress([10,20,30],[True,False,True])) == [10,30]
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
itertools.filterfalseОтбирает записи, не удовлетворяющие условию.
itertools.filterfalse
filterfalse(predicate, iterable)Отбирает записи, не удовлетворяющие условию.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
predicate | Функция условия либо None для bool. |
iterable | Исходный поток. |
Возвращаемое значение
Итератор элементов с ложным результатом условия.
Пример
"Пример itertools.filterfalse.\nСреда: встроенный MicroPython FEMM 5.\nОтбирает записи, не удовлетворяющие условию.\nРезультат: Итератор элементов с ложным результатом условия."
import itertools
assert list(itertools.filterfalse(lambda x:x>2,[1,2,3])) == [1,2]
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
itertools.takewhileОстанавливается на первом ложном условии; этот элемент уже потреблён.
itertools.takewhile
takewhile(predicate, iterable)Останавливается на первом ложном условии; этот элемент уже потреблён.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
predicate | Условие продолжения. |
iterable | Исходный поток. |
Возвращаемое значение
Итератор начальных подходящих элементов.
Пример
"Пример itertools.takewhile.\nСреда: встроенный MicroPython FEMM 5.\nОстанавливается на первом ложном условии; этот элемент уже потреблён.\nРезультат: Итератор начальных подходящих элементов."
import itertools
assert list(itertools.takewhile(lambda x:x<3,[1,2,3,1])) == [1,2]
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
itertools.dropwhileПропускает начальные подходящие значения, затем отдаёт всё.
itertools.dropwhile
dropwhile(predicate, iterable)Пропускает начальные подходящие значения, затем отдаёт всё.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
predicate | Условие пропуска начального участка. |
iterable | Исходный поток. |
Возвращаемое значение
Итератор оставшейся части.
Пример
"Пример itertools.dropwhile.\nСреда: встроенный MicroPython FEMM 5.\nПропускает начальные подходящие значения, затем отдаёт всё.\nРезультат: Итератор оставшейся части."
import itertools
assert list(itertools.dropwhile(lambda x:x<3,[1,2,3,1])) == [3,1]
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
itertools.zip_longestСопоставляет таблицы разной длины.
itertools.zip_longest
zip_longest(*iterables, fillvalue=None)Сопоставляет таблицы разной длины.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
iterables | Объединяемые потоки. |
fillvalue | Значение отсутствующего элемента в коротких потоках. |
Возвращаемое значение
Итератор кортежей длиной до самого длинного входа.
Пример
"Пример itertools.zip_longest.\nСреда: встроенный MicroPython FEMM 5.\nСопоставляет таблицы разной длины.\nРезультат: Итератор кортежей длиной до самого длинного входа."
import itertools
assert list(itertools.zip_longest([1,2],[10],fillvalue=0)) == [(1,10),(2,0)]
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
Имена в установленной сборке
Перечень получен во встроенном интерпретаторе. Он включает функции, классы и константы. Ссылки ведут к контрактам; для прямого доступа ulab учитывайте условия этого раздела.