Предлагает набор инструментов для создания итераторов.
Модуль предоставляет быстрые, эффективные по расходу памяти инструменты, создающие итераторы. Эти инструменты, навеяны конструкциями из APL, Haskell, SML, их можно использовать как по-отдельности, так и в различных комбинациях. Например, в SML есть tabulate(f), генерирующая последовательность f(0), f(1), ..., которую в Питоне можно воспроизвести как map(f, count()).

На заметку
Предоставленные модулем инструменты хорошо сочетаются с функциями модуля operator. Например, оператор умножения можно применить к двум векторам, чтобы эффективно вычислить скалярное произведение: sum(map(operator.mul, vector1, vector2)).

Инструменты по категориям:

  • Бесконечные итераторы: count(), cycle(), repeat(). Предоставляют поток неограниченной длины, поэтому использовать их следует внутри функций или циклов, останавливающих поток.
  • Конечные итераторы: accumulate(), chain(), chain.from_iterable(), compress(), dropwhile(), filterfalse(), groupby(), islice(), starmap(), takewhile(), tee(), zip_longest().
  • Итераторы для комбинаторики: product(), permutations(), combinations(), combinations_with_replacement().

На заметку
Больше примитивов, предлагающих итераторы для решения множества задач можно взять из пакета more-itertools. Примитивы также эффективны в плане минимизации потребления памяти и скорости работы.

Синонимы поиска: itertools
Статьи раздела
itertools.accumulate Создаёт итератор по элементам, к которым применена функция аккумулиро…
itertools.chain Создаёт итератор представляющий единой цепочкой элементы указанных об…
itertools.compress Создаёт итератор, фильтрующий элементы указанного объекта в соответст…
itertools.count Создаёт итератор по равномерно распределённому ряду чисел.
itertools.cycle Создаёт итератор по циклически повторяемым значениям.
itertools.dropwhile Создаёт итератор, отбрасывающий элементы до указанного.
itertools.filterfalse Создаёт итератор, который при помощи указанной функции отрицания филь…
itertools.groupby Создаёт итератор по сгруппированным элементам переданного объекта.
itertools.ifilter Создаёт итератор, который при помощи указанной функции фильтрует элем…
itertools.ifilterfalse Создаёт итератор, который при помощи указанной функции отрицания филь…
itertools.imap Создаёт итератор по элементам переданного объекта/объектов, к которым…
itertools.islice Создаёт итератор по ограниченному подмножеству элементов переданного …
itertools.product Возвращает генератор, выдающий «декартово произведение» для элементов…
itertools.repeat Создаёт итератор, повторно возвращающий указанный объект.
itertools.starmap Создаёт итератор по результатам выполнения указанной функции с исполь…
itertools.takewhile Создаёт итератор, выдающий элементы до указанного.
itertools.tee Создаёт несколько итераторов для одного итерируемого объекта.
На заметку
В разделе «События» можно узнать о надвигающихся событиях мира Python, а также поделиться своими. Если вы являетесь организатором встречи/конференции/спринта, зарегистрируйте это событие в указанном разделе, чтобы о нём узнали все желающие.