Работа с итераторами

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