🔁

How to Use itertools in Python

PythonAdvanced

Powerful iterator building blocks.

Code Example

Python
import itertools

# Infinite counters
print("Count:")
for i in itertools.count(10, 2):
    if i > 20:
        break
    print(i, end=" ")

# Cycle through items
print("\n\nCycle:")
for i, color in enumerate(itertools.cycle(["red", "green", "blue"])):
    if i >= 6:
        break
    print(color, end=" ")

# Repeat
print("\n\nRepeat:")
print(list(itertools.repeat("Hello", 3)))

# Chain iterables
print("\nChain:")
print(list(itertools.chain([1, 2], [3, 4], [5, 6])))

# Combinations
print("\nCombinations:")
print(list(itertools.combinations([1, 2, 3], 2)))

# Permutations
print("\nPermutations:")
print(list(itertools.permutations([1, 2, 3], 2)))

# Product (Cartesian product)
print("\nProduct:")
print(list(itertools.product([1, 2], ["a", "b"])))

# Groupby
print("\nGroupby:")
data = [("A", 1), ("A", 2), ("B", 3), ("B", 4)]
for key, group in itertools.groupby(data, lambda x: x[0]):
    print(f"{key}: {list(group)}")

# Accumulate
print("\nAccumulate:")
print(list(itertools.accumulate([1, 2, 3, 4, 5])))

Explanation

itertools provides efficient iterators. count() for infinite sequences, cycle() to repeat, chain() to combine, combinations/permutations for math.

Related Tutorials