我試圖在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