Python:列表理解明显快于Filter?

时间:2013-06-29 07:28:48

标签: python functional-programming

我一直在测试我用Python编写的Project Euler的代码,尝试进行函数式编程。以下两行代码的结果差异很大,虽然我想不出第二行如此巨大改进的原因......

method1 is run by timeit.Timer.timeit() in 216.869596283 seconds
method2 is run by timeit.Timer.timeit() in 162.596869065 seconds

有人能够启发我吗?

def method1():
  reduce(lambda x, y: x+y, filter(lambda x: x%3==0 or x%5==0, xrange(1000)))

def method2():
  reduce(lambda x, y: x+y, [x for x in xrange(1000) if x%3==0 or x%5==0])
编辑:我知道过滤器本质上比列表理解慢......我只是不明白为什么?

0 个答案:

没有答案