在Python中嵌套for循环

时间:2011-08-23 16:14:05

标签: python loops

我想做点什么

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 个答案:

答案 0 :(得分:10)

itertools.product

import itertools
for a,b,c in itertools.product([0, 1], repeat=3):
  # do something

答案 1 :(得分:3)

您可以迭代所有这些产品。使用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)

答案 2 :(得分:1)

听起来你需要处理一个矩阵/变量列表。因此,最好(也是最快)的解决方案是使用矩阵/列表工具。

如:Python itertools包。

正如其他人暗示的那样,itertools.product可能就是你想要的。但是,请参阅完整列表: http://docs.python.org/library/itertools.html

祝你好运。