I am using itertools
to run a numerical simulation iterating over all possible combinations of my input parameters. In the example below, I have two parameters and six possible combinations:
import itertools
x = [0, 1]
y = [100, 200, 300]
myprod = itertools.product(x, y)
for p in myprod:
print p[0], p[1]
# run myfunction using p[0] as the value of x and p[1] as the value of y
How can I get the size of myprod
(six, in the example)? I'd need to print this before the for
loop starts.
I understand myprod
is not a list. I can calculate len(list(myprod))
, but this consumes the iterator so the for
loop no longer works.
I tried:
myprod2=copy.deepcopy(myprod)
mylength = len(list(myprod2))
but this doesn't work, either. I could do:
myprod2=itertools.product(x,y)
mylength = len(list(myprod2))
but it's hardly elegant and pythonic!