Python中的嵌套for循环
我想做类似这样的事情
for a in [0..1]:
for b in [0..1]:
for c in [0..1]:
do something
但是,我可能有15个不同的变量。有没有更简单的方法,比如
for a, b, c in [0..1]:
do something
谢谢大家的帮助
3 个回答
1
听起来你有一组需要处理的变量,可能是一个矩阵或者列表。所以,最好的(也是最快的)解决办法就是使用一个处理矩阵或列表的工具。
比如说:Python的 itertools
包。
正如其他人提到的,itertools.product
可能正是你需要的功能。不过,你可以查看完整的功能列表,地址是:
http://docs.python.org/library/itertools.html
祝你好运。
4
你可以遍历它们所有组合的结果。使用 itertools.product,并把你的范围传进去。
import itertools
for i in itertools.product(range(2), range(3), range(2)):
print (i)
这样就会得到
(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)
12
import itertools
for a,b,c in itertools.product([0, 1], repeat=3):
# do something