我试图将所有数字加总到一个范围,而所有数字加到同一范围.
我正在使用python:
limit = 10
sums = []
for x in range(1,limit+1):
for y in range(1,limit+1):
sums.append(x+y)
但是,由于嵌套循环的缘故,这很好用,如果限制太大,将需要大量时间来计算总和.
有没有嵌套循环的方法吗?
(这只是我解决ProjectEuler问题所需做的事情的简化.它涉及获得所有大量数字的总和.)
解决方法:
[x + y for x in xrange(limit + 1) for y in xrange(x + 1)]
它仍然执行同样多的计算,但是速度大约是for循环的两倍.
from itertools import combinations
(a + b for a, b in combinations(xrange(n + 1, 2)))
这样避免了很多重复的款项.我不知道您是否要跟踪这些.
如果您只希望每笔款项都没有表示如何获得,那么xrange(2 * n 2)
完全没有重复或循环,为您提供所需的内容.
回答问题:
[x + y for x in set set1 for y in set2]