python 摸索(二) 让我爱上python的一句1000阶乘代码

reduce (lambda x,y:x*y ,xrange(1,1001))

实现1000的阶乘,简约!


reduce(function, iterable[,initializer])

reduce(lambdax,y:x+y,[1,2,3,4,5]) calculates((((1+2)+3)+4)+5)

参数一:一个两参数的函数,会被循环调用直到参数二的列表为空

参数二:一个迭代器,从左到右,每两个迭代器指向的对象会被丢入参数一的函数中,然后参数一的函数的返回值会被插入参数二的头部


lambda

匿名函数如lambda x,y:x*y 中的x,y表示参数,x*y表示函数内部的表达式

 

xrange([start],stop[,step])

这个xrange()和range()很相似,不过range()返回的是list数组,xrange()返回的是type,类似于迭代器

xrange()不会一下子把所有的内容放到内存中,用到再申请。

如:

>>> xrange(1,4)
xrange(1, 4)
>>> range(1,4)
[1, 2, 3]


在在大数据处理和循环中break的时候,xrange()的效率好的不是一星半点。以后再用range()我就剁手。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值