python迭代公式_python-通过列表迭代函数

是的与生成器表达式一起使用all:

def primecheck_all(x):

return all(prime(n) for n in x)

这与执行以下操作大致相同:

def primecheck_longway(x):

for n in x:

if not prime(n):

return False

return True

进行一些计时,尽管primecheck_all更容易阅读,但它似乎实际上更快. primecheck_xrange(您的版本)最慢:

>>> def prime(n):

#simple function so all timing goes to how the list check is done

return n % 2 == 0

>>> l = range(100)

>>> timeit.timeit(lambda: primecheck_all(l))

1.4247075990295475

>>> timeit.timeit(lambda: primecheck_longway(l))

0.6282418298159413

>>> timeit.timeit(lambda: primecheck_xrange(l))

1.161489160644436

>>> l = range(2,100,2)

>>> timeit.timeit(lambda: primecheck_all(l))

10.058764784981875

>>> timeit.timeit(lambda: primecheck_longway(l))

7.728265179204939

>>> timeit.timeit(lambda: primecheck_xrange(l))

10.481824344034152

这可能是由于不必具有发电机的开销.可以看出,这是一百万次迭代的2.3秒差异.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值