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știTypeError: missing 1 required positional argument.