Ce face itertools.product()
product(a, b) produce toate perechile (x, y) cu x din a și y din b, ca două bucle for imbricate. Cu repeat=n, aceeași colecție este folosită de n ori.
Numărul de rezultate crește foarte repede (produsul lungimilor), așa că atenție la colecții mari.
Parametri
| Parametru | Descriere |
|---|---|
*iterabile |
Colecțiile combinate. |
repeat |
Opțional. De câte ori se repetă colecțiile. |
Ce returnează
Un iterator de tupluri.
Exemple
Exemplul 1: Variante de produs și coduri PIN
from itertools import product
for marime, culoare in product(["S", "M"], ["alb", "negru"]):
print(marime, culoare)
coduri = ["".join(p) for p in product("01", repeat=3)]
print(coduri)
print(len(list(product(range(10), repeat=4))))
Rezultat
S alb
S negru
M alb
M negru
['000', '001', '010', '011', '100', '101', '110', '111']
10000
Greșeli frecvente
- Transformi în listă produsul a multe colecții mari și programul rămâne fără memorie. Parcurge rezultatul direct cu
for.
Comenzi înrudite
itertools.permutations(): Toate aranjamentele posibile ale elementelor, în care ordinea contează.itertools.combinations() și combinations_with_replacement(): Toate grupurile de r elemente dintr-o colecție, fără să conteze ordinea.for: Parcurge, pe rând, fiecare element dintr-o listă, text, dicționar sau alt obiect iterabil.