87. Python’s itertools Module
The itertools module in Python provides a set of fast, memory-efficient tools for performing iteration and combinatorics, such as working with permutations, combinations, and infinite sequences. Below are 10 Python code snippets demonstrating how to use various functions from the itertools module for efficient iteration and combinatorics:
1. Counting with itertools.count
Copy
import itertools
# Create an infinite counter starting from 0
counter = itertools.count(start=0, step=2)
# Print the first 5 numbers from the counter
for i in itertools.islice(counter, 5):
print(i)itertools.count creates an infinite iterator that generates numbers starting from start and increasing by step. In this case, it starts from 0 and increments by 2.
2. Generating Permutations with itertools.permutations
Copy
import itertools
# Generate all permutations of a list of 3 items
items = ['A', 'B', 'C']
permutations = itertools.permutations(items)
# Print the permutations
for perm in permutations:
print(perm)itertools.permutations returns all possible permutations of the input iterable. It takes an optional second argument to limit the length of each permutation.
3. Generating Combinations with itertools.combinations
Copy
itertools.combinations returns all possible combinations of the specified length from the input iterable.
4. Cartesian Product with itertools.product
Copy
itertools.product computes the Cartesian product of input iterables, which is similar to a nested for-loop.
5. Infinite Cycling with itertools.cycle
Copy
itertools.cycle creates an infinite iterator that cycles through the elements of the iterable.
6. Repeating Elements with itertools.repeat
Copy
itertools.repeat returns an iterator that repeats the given element indefinitely (or a specified number of times).
7. Chaining Iterables with itertools.chain
Copy
itertools.chain combines multiple iterables into one continuous sequence.
8. Filtering Iterables with itertools.compress
Copy
itertools.compress filters elements from the first iterable based on a selector iterable (True/False values).
9. Grouping Elements with itertools.groupby
Copy
itertools.groupby groups consecutive occurrences of the same value. The result is a key-value pair of the group key and the grouped elements.
10. Taking a Slice of an Iterable with itertools.islice
Copy
itertools.islice allows you to take a slice of an iterable, similar to slicing lists, but works with any iterable.
Last updated