itertools.pairwise() în Python

Modulul itertools Python 3.10+

Produce perechile de elemente vecine: (a, b), (b, c), (c, d)...

Sintaxă
itertools.pairwise(iterabil)

Ce face itertools.pairwise()

pairwise() parcurge colecția și dă fiecare element împreună cu următorul. Este forma clară pentru diferențe între valori consecutive, verificarea ordonării sau distanțe între puncte succesive.

O colecție cu mai puțin de două elemente nu produce nicio pereche.

Parametri

Parametru Descriere
iterabil Elementele.

Ce returnează

Un iterator de perechi.

Exemple

Exemplul 1: Diferențe zilnice și verificarea ordonării

from itertools import pairwise
cursuri = [4.97, 4.98, 4.96, 4.99]
print([round(b - a, 2) for a, b in pairwise(cursuri)])
print(list(pairwise("abcd")))
print(all(a <= b for a, b in pairwise([1, 3, 3, 7])))

Rezultat

[0.01, -0.02, 0.03]
[('a', 'b'), ('b', 'c'), ('c', 'd')]
True

Greșeli frecvente

  • Scrii zip(lista, lista[1:]): merge pe liste, dar copiază lista și nu merge pe generatoare. pairwise() funcționează pe orice iterabil.

Comenzi înrudite

  • zip(): Parcurge mai multe colecții în paralel și le grupează element cu element.
  • itertools.batched(): Împarte o colecție în loturi (tupluri) de câte n elemente.
  • itertools.accumulate(): Produce totalurile parțiale (sume cumulate) sau alt rezultat acumulat pas cu pas.