Python中的嵌套for循环

8 投票
3 回答
1460 浏览
提问于 2025-04-17 00:12

我想做类似这样的事情

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

itertools.product:

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

撰写回答