← retour aux snippets

itertools.starmap: appliquer une fonction à des tuples

Déplier les tuples en arguments d'appel automatiquement.

python itertools #itertools#starmap#map

objectif

Déplier les tuples en arguments d’appel automatiquement.

code minimal

from itertools import starmap
pairs = [(2,3), (3,4)]
prods = list(starmap(lambda x,y: x*y, pairs))
print(prods == [6, 12])  # attendu: True

utilisation

from itertools import starmap
pts = [(0,0), (1,1), (2,3)]
dist2 = list(starmap(lambda x,y: x*x + y*y, pts))
print(dist2[2] == 13)

variante(s) utile(s)

from itertools import starmap
print(len(list(starmap(lambda *args: args, []))) == 0)

notes

  • Évite d’écrire des lambdas qui indexent les tuples dans map.
  • Combinez avec zip pour transformer plusieurs séquences.