在python中做一个"抽象"循环

J.L*_*.Li -1 python loops

假设我要计算n,打印所有的a_1 +a_2 + ... + a_n地方a_i都是自然数小于n.

如果n是"小"(例如n = 3),我使用以下代码.

from itertools import product
n=3
for a_1,a_2,a_3 in product(range(n),repeat=n):
    print a_1+a_2+a_3
Run Code Online (Sandbox Code Playgroud)

但如果n是"大",比方说n = 10,我需要打字

from itertools import product
n=10
for a_1,a_2,a_3,a_4,a_5,a_6,a_7,a_8,a_9,a_10 in product(range(n),repeat=n):
    print a_1+a_2+a_3+a_4+a_5+a_6+a_7+a_8+a_9+a_10
Run Code Online (Sandbox Code Playgroud)

如果我想计算n = 100,这种类型将是非常可怕的!我们还有其他方法吗?

che*_*ner 7

不要打开元组的包装:

for t in product(range(n), repeat=n):
    print sum(t)
Run Code Online (Sandbox Code Playgroud)

通过使用变量,你暗示你不知道元组有多大,因此无法有意义地解压缩它.您的代码必须相应调整.