itertools.product() în Python

Modulul itertools Python 3.0+

Produsul cartezian: toate combinațiile formate cu câte un element din fiecare colecție.

Sintaxă
itertools.product(*iterabile, repeat=1)

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