我试图在lambda函数中得到所有低于2,000,000的素数的总和。 (我bruteforced它,但那要花费太长了,我希望有一个更好的解决方案。)这是我到目前为止有:Python:获得Lambda函数的总和
def isPrime(n):
for x in range(2, int(n**0.5)+1):
if n%x==0: return False
return True
print reduce(lambda x: isPrime(x), [range(200)])
现在,这只是打印数递增从1到200,所以我不认为减少工作= \
任何人有任何提示吗?
传递给'功能reduce()'带*两个*参数;先前的结果和序列中的当前元素。你想使用filter()吗? – 2013-03-14 22:39:05
而'[range(200)]'创建一个包含* one *元素的列表,另一个200个数字的列表。当输入列表中只有一个元素时,reduce()不做* nothing *并返回该输入元素。 – 2013-03-14 22:40:16
我给了它两个参数;该序列位于括号内,范围(200)。 – Tetramputechture 2013-03-14 22:40:47