itertools module

Martin McBride, 2021-10-10
Tags itertools python standard library
Categories python standard library

The itertools module provides a set of functions that create iterators.

Some of these functions work in similar ways to the built-in functions on iterables, in particular the transforming and reducing functions. You may want to read that article of you are not familiar with map, filter, zip and sum.

This article covers all the functions in the itertools module, with examples. The functions are divided into groups that cover similar functionality:

  • General iterators - mainly variants on the built-in functions
    • Map-like iterators - starmap.
    • Filter-like iterators - filterfalse, dropwhile, takewhile, compress, and isslice.
    • Zip-like iterators - chain, chain.from_iterable, and zip_longest.
    • Splitting iterators - tee and groupby.
    • Accumulating iterators - accumulate.
  • Infinite iterators - count, cycle, and repeat.
  • Combinatoric iterators - product, permutations, combinations and combinations_with_replacement.

All these functions are contained in the itertools module, so you always import this module to use the functions. We haven't shown this in the examples, to avoid repetition, but you should include the import at the top of every example if you want to run them.

If you found this article useful, you might be interested in the book Python Quick Start or other books by the same author.


Popular tags

2d arrays abstract data type alignment and animation arc array arrays behavioural pattern bezier curve built-in function callable object chain circle classes close closure cmyk colour combinations comparison operator comprehension context context manager conversion count creational pattern data types design pattern device space dictionary drawing duck typing efficiency ellipse else encryption enumerate fill filter font font style for loop function function composition function plot functools game development generativepy tutorial generator geometry gif gradient greyscale higher order function hsl html image image processing imagesurface immutable object index inner function input installing iter iterable iterator itertools l system lambda function len line linear gradient linspace list list comprehension logical operator lru_cache magic method mandelbrot mandelbrot set map monad mutability named parameter numeric python numpy object open operator optional parameter or partial application path pattern permutations polygon positional parameter print pure function python standard library radial gradient range recipes rectangle recursion reduce repeat rgb rotation scaling sector segment sequence setup shape singleton slice slicing sound spirograph sprite square str stream string stroke structural pattern subpath symmetric encryption template text text metrics tinkerbell fractal transform translation transparency triangle tuple turtle unpacking user space vectorisation webserver website while loop zip