Работа с итераторами
itertools — базовая библиотека для выполнения операций над итерируемыми объектами
Определения
Итерируемый объект
Любой объект, имеющий методы __iter__ или __getitem__, которые возвращают итераторы или могут принимать индексы. Таким образом, итерируемый объект может предоставить нам итератор (но это может не дать нам возможность выполнить функцию next над итерируемым объектом).
Итератор
Объект, у которого есть метод __next__. Встроенная функция iter возвращает итератор из итерируемого объекта.
Итерация
Процесс перебора элементов источника.
Встроенные бесконечные последовательности
count — последовательность чисел, в которой каждой последующее число отличается от предыдущего на фиксированную величину
cycle — циклическая последовательность, которая строится на базе другой конечной последовательности элементов
repeat — повторяет один и тот же элемент
import itertools
itertools.count(start[, step]) # start, start + step, start + 2 * step, ...
itertools.cycle([1, 2, 3, 4]) # 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, ...
itertools.repeat(1) # 1, 1, 1, 1, ...Производные последовательности
Создаются над другими конечными последовательностями
В документации есть и другие функции (около map, zip над итерируемыми последовательностями)
Last updated