Python itertools.pairwise Function

The itertools.pairwise function in Python's itertools module returns an iterator that yields consecutive overlapping pairs of elements from the input iterable. It is useful for processing elements in pairs, such as finding differences or computing rolling statistics.

Table of Contents

  1. Introduction
  2. itertools.pairwise Function Syntax
  3. Examples
    • Basic Usage
    • Using with Strings
    • Processing Pairs
  4. Real-World Use Case
  5. Conclusion

Introduction

The itertools.pairwise function creates an iterator that produces consecutive overlapping pairs from the input iterable. This function is particularly useful for scenarios where you need to compare or process elements in pairs.

itertools.pairwise Function Syntax

Here is how you use the itertools.pairwise function:

import itertools

iterator = itertools.pairwise(iterable)

Parameters:

  • iterable: The input iterable from which pairs are generated.

Returns:

  • An iterator that yields consecutive overlapping pairs of elements.

Examples

Basic Usage

Generate consecutive pairs from a list.

Example

import itertools

data = [1, 2, 3, 4, 5]
result = itertools.pairwise(data)

print(list(result))

Output:

[(1, 2), (2, 3), (3, 4), (4, 5)]

Using with Strings

Generate consecutive pairs of characters from a string.

Example

import itertools

data = 'ABCDE'
result = itertools.pairwise(data)

print(list(result))

Output:

[('A', 'B'), ('B', 'C'), ('C', 'D'), ('D', 'E')]

Processing Pairs

Use pairwise to process pairs, such as finding differences between consecutive elements.

Example

import itertools

data = [10, 20, 30, 40, 50]
result = itertools.pairwise(data)
differences = [(y - x) for x, y in result]

print(differences)

Output:

[10, 10, 10, 10]

Real-World Use Case

Computing Rolling Averages

Use pairwise to compute rolling averages of consecutive pairs of numbers.

Example

import itertools

data = [10, 20, 30, 40, 50]
result = itertools.pairwise(data)
rolling_averages = [(x + y) / 2 for x, y in result]

print(rolling_averages)

Output:

[15.0, 25.0, 35.0, 45.0]

Conclusion

The itertools.pairwise function is used for generating consecutive overlapping pairs from an iterable. It simplifies the process of processing elements in pairs, making it valuable for tasks such as computing differences, rolling averages, and other pairwise operations.

Comments

Spring Boot 3 Paid Course Published for Free
on my Java Guides YouTube Channel

Subscribe to my YouTube Channel (165K+ subscribers):
Java Guides Channel

Top 10 My Udemy Courses with Huge Discount:
Udemy Courses - Ramesh Fadatare