itertools
Предлагает набор инструментов для создания итераторов.
Модуль предоставляет быстрые, эффективные по расходу памяти инструменты, создающие итераторы. Эти инструменты, навеяны конструкциями из 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.islice | Создаёт итератор по ограниченному подмножеству элементов переданного … |
itertools.product | Возвращает генератор, выдающий «декартово произведение» для элементов… |
itertools.repeat | Создаёт итератор, повторно возвращающий указанный объект. |
itertools.starmap | Создаёт итератор по результатам выполнения указанной функции с исполь… |
itertools.takewhile | Создаёт итератор, выдающий элементы до указанного. |
itertools.tee | Создаёт несколько итераторов для одного итерируемого объекта. |
В разделе «Пакеты и модули»:
array
collections
contextlib
datetime
functools
keyword (ключевые слова)
math
random
re (регулярные выражения)
string
На заметку
В разделе «События» можно узнать о надвигающихся событиях мира Python, а также поделиться своими. Если вы являетесь организатором встречи/конференции/спринта, зарегистрируйте это событие в указанном разделе, чтобы о нём узнали все желающие.