大家好,又见面了,我是全栈君。
看到一篇博文写lambda和reduce函数。笔者小痒了一下,用Python实现一下:
#! /usr/bin/env python
# -*-coding:utf-8-*-
import time
import math
def test_reduce():
start_time = time.clock()
print reduce[A1] (lambdax,y:x*y[A2] ,range(1,long(input(‘plz input a num(>0):’)+1))[A3] )
print ‘Time used:%s’ %(time.clock()-start_time)
return;
def test_math():
start_time2 = time.clock()
print math.factorial[A4] (long(raw_input(‘plz input a num(>0):’)))
print ‘Time used:%s’ %(time.clock()-start_time2)
if __name__ == ‘__main__’:
print ‘~’*34+’Use reduce’+’~’*34
test_reduce()
print ‘~’*34+’Use math’+’~’*34
test_math()
Python is Python!
[A1]关于reduce函数的參数及解释:
reduce(function, iterable[, initializer])
Apply function of two argumentscumulatively to the items of iterable, from left to right, so as to reduce theiterable to a single value. For example, reduce(lambda x, y: x+y, [1, 2, 3, 4,5]) calculates ((((1+2)+3)+4)+5). The left argument, x, is the accumulatedvalue and the right argument, y, is the update value from the iterable. If theoptional initializer is present, it is placed before the items of the iterablein the calculation, and serves as a default when the iterable is empty. Ifinitializer is not given and iterable contains only one item, the first item isreturned.
[A2]关于lambda函数的參数及解释:
An anonymous inline function consisting ofa single expressionwhich is evaluated when the function is called. The syntax to create a lambdafunction is lambda [arguments]: expression
Lambda expressions (sometimes called lambdaforms) have the same syntactic position as expressions. They are a shorthand tocreate anonymous functions; the expression lambda arguments: expression yieldsa function object. The unnamed object behaves like a function object definedwith
def name(arguments):
return expression
[A3]关于range函数的參数及解释:
the built-in function range() returns a sequence of integers suitable to emulate theeffect of Pascal’s for i := a to b do; e.g., range(3) returns the list [0, 1,2].
[A4]关于factorial函数的參数及解释:
math.factorial(x)
Return x factorial. Raises ValueError if x is not integral or is negative.
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116036.html原文链接:https://javaforall.cn
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有