Skip to main content Brad's PyNotes

Itertools Module: Iterator Building Blocks for Efficient Loops

TL;DR

The itertools module provides memory-efficient iterator building blocks like chain(), combinations(), cycle(), and count() for creating powerful iteration patterns.

Interesting!

The itertools.product() function can generate Cartesian products infinitely - perfect for nested loops without the nesting complexity.

Common Patterns

python code snippet start

import itertools

# Chain multiple iterables
combined = itertools.chain([1, 2], [3, 4], [5, 6])
print(list(combined))  # [1, 2, 3, 4, 5, 6]

# Combinations
items = ['A', 'B', 'C']
pairs = itertools.combinations(items, 2)
print(list(pairs))  # [('A', 'B'), ('A', 'C'), ('B', 'C')]

# Infinite cycling
colors = itertools.cycle(['red', 'green', 'blue'])

python code snippet end

Itertools enables elegant, memory-efficient solutions to complex iteration problems.

Combine itertools with functools for powerful functional programming patterns that are both elegant and performant.

Reference: Python Itertools Documentation