我有这部分代码:
N = 4
coa = []
for a in range(N):
for b in range(N):
for c in range(N):
for d in range (N):
coa.append(a,b,c,d)
基本上,我需要连接与数字N
一样多的for循环。因此,如果N
等于6
,我将不得不添加其他两个带字母e
和f
的for循环,并在coa.append()
内添加相同的字母{1}}。是否有可能自动执行此操作,这意味着通过改变N的整数值,可以在不键入的情况下完成所有操作?
答案 0 :(得分:1)
您可以使用itertools.product
和repeat()
:
以下是一个例子:
In [3]: from itertools import product, repeat
In [5]:
In [5]: list(product(*repeat(range(3), 3)))
Out[5]:
[(0, 0, 0),
(0, 0, 1),
(0, 0, 2),
(0, 1, 0),
(0, 1, 1),
(0, 1, 2),
(0, 2, 0),
(0, 2, 1),
(0, 2, 2),
(1, 0, 0),
(1, 0, 1),
(1, 0, 2),
(1, 1, 0),
(1, 1, 1),
(1, 1, 2),
(1, 2, 0),
(1, 2, 1),
(1, 2, 2),
(2, 0, 0),
(2, 0, 1),
(2, 0, 2),
(2, 1, 0),
(2, 1, 1),
(2, 1, 2),
(2, 2, 0),
(2, 2, 1),
(2, 2, 2)]