假设我想计算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
但如果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
如果我想计算n = 100
,这种类型会非常糟糕!我们还有其他方法吗?
答案 0 :(得分:7)
不要解开元组:
for t in product(range(n), repeat=n):
print sum(t)
通过使用变量,您暗示您不知道元组有多大,因此无法有意义地解压缩它。您的代码必须相应调整。