← Back to Python

All Topics

Advertisement

Learn/Python/Advanced Python

Itertools Advanced

Topic: Functional Programming

Advertisement

Introduction

Advanced itertools patterns for complex iterator transformations.

GroupBy

import itertools

data = [("A", 1), ("A", 2), ("B", 3), ("B", 4), ("C", 5)]

for key, group in itertools.groupby(data, key=lambda x: x[0]):
    items = list(group)
    print(f"{key}: {items}")

Islice

import itertools

arr = range(10)

# First 5 elements
first5 = list(itertools.islice(arr, 5))

# Skip first 3, take next 4
subset = list(itertools.islice(arr, 3, 7))

# Infinite with islice
infinite = itertools.count()
even = itertools.islice(infinite, 0, 10, 2)  # 0, 2, 4, 6, 8

Zip Longest

import itertools

# Different lengths
a = [1, 2, 3]
b = ["a", "b"]

list(itertools.zip_longest(a, b, fillvalue=None))
# [(1, 'a'), (2, 'b'), (3, None)]

Practice Problems

  1. Window sliding with islice
  2. Merge overlapping intervals
  3. Group by multiple keys
  4. Pad sequences to same length
  5. Create lazy chunking iterator

Advertisement

Advertisement

Need More Practice?

Get personalized Python help from ChatWhole's AI-powered platform.

Get Expert Help →