*Memo:
product() can return the iterator which does cartesian product with the elements of *iterables
one by one to return a tuple of zero or more elements one by one as shown below:
*Memo:
- The 1st arguments are
*iterables
(Optional-Default:()
-Type:Iterable):- Don't use any keywords like
*iterables=
,iterables=
, etc.
- Don't use any keywords like
- The 2nd argument is
repeat
(Optional-Default:1
-Type:int
):- It's the length of the returned tuple.
- It must be
0 <= x
. -
repeat=
must be used.
from itertools import product
v = product()
v = product((), repeat=0)
print(v)
# <itertools.product object at 0x000001BE99723500>
print(next(v)) # ()
print(next(v)) # StopIteration:
from itertools import product
v = product('ABC')
v = product(['A', 'B', 'C'])
print(next(v)) # ('A',)
print(next(v)) # ('B',)
print(next(v)) # ('C',)
print(next(v)) # StopIteration:
from itertools import product
for x in product('ABC', repeat=2):
# for x in product(['A', 'B', 'C'], repeat=2):
print(x)
# ('A', 'A')
# ('A', 'B')
# ('A', 'C')
# ('B', 'A')
# ('B', 'B')
# ('B', 'C')
# ('C', 'A')
# ('C', 'B')
# ('C', 'C')
from itertools import product
for x in product('ABC', repeat=3):
# for x in product(['A', 'B', 'C'], repeat=3):
print(x)
# ('A', 'A', 'A')
# ('A', 'A', 'B')
# ('A', 'A', 'C')
# ('A', 'B', 'A')
# ('A', 'B', 'B')
# ('A', 'B', 'C')
# ('A', 'C', 'A')
# ('A', 'C', 'B')
# ('A', 'C', 'C')
# ('B', 'A', 'A')
# ('B', 'A', 'B')
# ('B', 'A', 'C')
# ('B', 'B', 'A')
# ('B', 'B', 'B')
# ('B', 'B', 'C')
# ('B', 'C', 'A')
# ('B', 'C', 'B')
# ('B', 'C', 'C')
# ('C', 'A', 'A')
# ('C', 'A', 'B')
# ('C', 'A', 'C')
# ('C', 'B', 'A')
# ('C', 'B', 'B')
# ('C', 'B', 'C')
# ('C', 'C', 'A')
# ('C', 'C', 'B')
# ('C', 'C', 'C')
from itertools import product
for x in product('ABC', repeat=4):
# for x in product(['A', 'B', 'C'], repeat=4):
print(x)
# ('A', 'A', 'A', 'A')
# ('A', 'A', 'A', 'B')
# ('A', 'A', 'A', 'C')
# ('A', 'A', 'B', 'A')
# ('A', 'A', 'B', 'B')
# ('A', 'A', 'B', 'C')
# ('A', 'A', 'C', 'A')
# ('A', 'A', 'C', 'B')
# ('A', 'A', 'C', 'C')
# ('A', 'B', 'A', 'A')
# ('A', 'B', 'A', 'B')
# ('A', 'B', 'A', 'C')
# ('A', 'B', 'B', 'A')
# ('A', 'B', 'B', 'B')
# ('A', 'B', 'B', 'C')
# ('A', 'B', 'C', 'A')
# ('A', 'B', 'C', 'B')
# ('A', 'B', 'C', 'C')
# ('A', 'C', 'A', 'A')
# ('A', 'C', 'A', 'B')
# ('A', 'C', 'A', 'C')
# ('A', 'C', 'B', 'A')
# ('A', 'C', 'B', 'B')
# ('A', 'C', 'B', 'C')
# ('A', 'C', 'C', 'A')
# ('A', 'C', 'C', 'B')
# ('A', 'C', 'C', 'C')
# ('B', 'A', 'A', 'A')
# ('B', 'A', 'A', 'B')
# ('B', 'A', 'A', 'C')
# ...
from itertools import product
for x in product('AB', 'C'):
# for x in product(['A', 'B'], ['C']):
print(x)
# ('A', 'C')
# ('B', 'C')
from itertools import product
for x in product('AB', 'C', repeat=2):
# for x in product(['A', 'B'], ['C'], repeat=2):
print(x)
# ('A', 'C', 'A', 'C')
# ('A', 'C', 'B', 'C')
# ('B', 'C', 'A', 'C')
# ('B', 'C', 'B', 'C')
from itertools import product
for x in product('AB', 'C', repeat=3):
# for x in product(['A', 'B'], ['C'], repeat=3):
print(x)
# ('A', 'C', 'A', 'C', 'A', 'C')
# ('A', 'C', 'A', 'C', 'B', 'C')
# ('A', 'C', 'B', 'C', 'A', 'C')
# ('A', 'C', 'B', 'C', 'B', 'C')
# ('B', 'C', 'A', 'C', 'A', 'C')
# ('B', 'C', 'A', 'C', 'B', 'C')
# ('B', 'C', 'B', 'C', 'A', 'C')
# ('B', 'C', 'B', 'C', 'B', 'C')
from itertools import product
for x in product('AB', 'C', repeat=4):
# for x in product(['A', 'B'], ['C'], repeat=4):
print(x)
# ('A', 'C', 'A', 'C', 'A', 'C', 'A', 'C')
# ('A', 'C', 'A', 'C', 'A', 'C', 'B', 'C')
# ('A', 'C', 'A', 'C', 'B', 'C', 'A', 'C')
# ('A', 'C', 'A', 'C', 'B', 'C', 'B', 'C')
# ('A', 'C', 'B', 'C', 'A', 'C', 'A', 'C')
# ('A', 'C', 'B', 'C', 'A', 'C', 'B', 'C')
# ('A', 'C', 'B', 'C', 'B', 'C', 'A', 'C')
# ('A', 'C', 'B', 'C', 'B', 'C', 'B', 'C')
# ('B', 'C', 'A', 'C', 'A', 'C', 'A', 'C')
# ('B', 'C', 'A', 'C', 'A', 'C', 'B', 'C')
# ('B', 'C', 'A', 'C', 'B', 'C', 'A', 'C')
# ('B', 'C', 'A', 'C', 'B', 'C', 'B', 'C')
# ('B', 'C', 'B', 'C', 'A', 'C', 'A', 'C')
# ('B', 'C', 'B', 'C', 'A', 'C', 'B', 'C')
# ('B', 'C', 'B', 'C', 'B', 'C', 'A', 'C')
# ('B', 'C', 'B', 'C', 'B', 'C', 'B', 'C')
Top comments (0)