I want to do something like
for a in [0..1]:
for b in [0..1]:
for c in [0..1]:
do something
But, I might have 15 different variables. Is there a simpler way like
for a, b, c in [0..1]:
do something
Thanks for any help
itertools.product
:
import itertools
for a,b,c in itertools.product([0, 1], repeat=3):
# do something
You can iterate over the product of all of them. Use itertools.product and pass in your ranges.
import itertools
for i in itertools.product(range(2), range(3), range(2)):
print (i)
yields
(0, 0, 0)
(0, 0, 1)
(0, 1, 0)
(0, 1, 1)
(0, 2, 0)
(0, 2, 1)
(1, 0, 0)
(1, 0, 1)
(1, 1, 0)
(1, 1, 1)
(1, 2, 0)
(1, 2, 1)
It sounds like you have a matrix/list of variables you need to process. Thus, the best (and speediest) solution is to use a matrix/list tool.
Such as: The Python itertools
package.
As other have hinted, itertools.product
is probably what you want. But, see the full list at:
http://docs.python.org/library/itertools.html
Good luck.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With