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 angle animation arc array arrays bar chart bar style behavioural pattern bezier curve built-in function callable object chain circle classes clipping close closure cmyk colour combinations comparison operator comprehension context context manager conversion count creational pattern data science data types decorator 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 global variable gradient greyscale higher order function hsl html image image processing imagesurface immutable object in operator index inner function input installing iter iterable iterator itertools join l system lambda function len lerp line line plot line style linear gradient linspace list list comprehension logical operator lru_cache magic method mandelbrot mandelbrot set map marker style matplotlib monad mutability named parameter numeric python numpy object open operator optimisation optional parameter or pandas partial application path pattern permutations pie chart polygon positional parameter print pure function python standard library radial gradient range recipes rectangle recursion reduce regular polygon repeat rgb rotation roundrect scaling scatter plot scipy 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 truthy value tuple turtle unpacking user space vectorisation webserver website while loop zip