itertools.starmap() în Python

Modulul itertools Python 3.0+

Aplică o funcție pe tupluri, despachetând fiecare tuplu în argumente.

Sintaxă
itertools.starmap(functie, iterabil_de_tupluri)

Ce face itertools.starmap()

starmap(f, [(a, b), (c, d)]) produce f(a, b), f(c, d). Diferența față de map(): map ar apela f((a, b)) cu tuplul ca un singur argument. Numele vine de la *, operatorul de despachetare.

Parametri

Parametru Descriere
functie Funcția aplicată.
iterabil O colecție de tupluri cu argumente.

Ce returnează

Un iterator.

Exemple

Exemplul 1: Calcule pe perechi

from itertools import starmap
cos = [(4.5, 2), (7, 3), (32.9, 1)]
print(list(starmap(lambda pret, cant: pret * cant, cos)))
print(list(starmap(pow, [(2, 5), (3, 2), (10, 3)])))
print(list(starmap(max, [(1, 9, 4), (7, 2)])))

Rezultat

[9.0, 21, 32.9]
[32, 9, 1000]
[9, 7]

Greșeli frecvente

  • Folosești map(f, perechi) cu o funcție care cere două argumente și primești TypeError: missing 1 required positional argument.

Comenzi înrudite

  • map(): Aplică o funcție fiecărui element dintr-o colecție.
  • zip(): Parcurge mai multe colecții în paralel și le grupează element cu element.