ÔÚ½²Êöfilter£¬mapºÍreduce֮ǰ£¬Ê×ÏȽéÉÜÒ»ÏÂÄäÃûº¯Êýlambda¡£
lambdaµÄʹÓ÷½·¨ÈçÏ£ºlambda [arg1[,arg2,arg3,...,argn]] : expression
ÀýÈ磺
>>> add = lambda x,y : x + y
>>> add(1,2)
3
½ÓÏÂÀ´·Ö±ð½éÉÜfilter£¬mapºÍreduce¡£
1¡¢filter(bool_func,seq)£º´Ëº¯ÊýµÄ¹¦ÄÜÏ൱ÓÚ¹ýÂËÆ÷¡£µ÷ÓÃÒ»¸ö²¼¶ûº¯Êýbool_funcÀ´µü´ú±éÀúÿ¸öseqÖеÄÔªËØ£»·µ»ØÒ»¸öʹbool_seq·µ»ØÖµÎªtrueµÄÔªËØµÄÐòÁС£
ÀýÈ磺
>>> filter(lambda x : x%2 == 0,[1,2,3,4,5])
[2, 4]
filterÄÚ½¨º¯ÊýµÄpythonʵÏÖ£º
>>> def filter(bool_func,seq):
filtered_seq = []
for eachItem in seq:
if bool_func(eachItem):
filtered_seq.append(eachItem)
return filtered_seq
2¡¢map(func,seq1[,seq2...])£º½«º¯Êýfunc×÷ÓÃÓÚ¸ø¶¨ÐòÁеÄÿ¸öÔªËØ£¬²¢ÓÃÒ»¸öÁбíÀ´Ìṩ·µ»ØÖµ£»Èç¹ûfuncΪNone£¬func±íÏÖΪÉí·Ýº¯Êý£¬·µ»ØÒ»¸öº¬ÓÐÿ¸öÐòÁÐÖÐÔªËØ¼¯ºÏµÄn¸öÔª×éµÄÁÐ±í¡£
ÀýÈ磺
>>> map(lambda x : None,[1,2,3,4])
[None, None, None, None]
>>> map(lambda x : x * 2,[1,2,3,4])
[2, 4, 6, 8]
>>> map(lambda x : x * 2,[1,2,3,4,[5,6,7]])
[2, 4, 6, 8, [5, 6, 7, 5, 6, 7]]
>>> map(lambda x : None,[1,2,3,4])
[None, None, None, None]
mapÄÚ½¨º¯ÊýµÄpythonʵÏÖ£º
>>> def map(func,seq):
mapped_seq = []
for eachItem in seq:
mapped_seq.append(func(eachItem))
return mapped_seq
3¡¢reduce(func,seq[,init])£ºfuncΪ¶þÔªº¯Êý£¬½«func×÷ÓÃÓÚseqÐòÁеÄÔªËØ£¬Ã¿´ÎЯ´øÒ»¶Ô£¨ÏÈǰµÄ½á¹ûÒÔ¼°ÏÂÒ»¸öÐòÁеÄÔªËØ£©£¬Á¬ÐøµÄ½«ÏÖÓеĽá¹ûºÍÏÂÒ»¸öÖµ×÷ÓÃÔÚ»ñµÃµÄËæºóµÄ½á¹ûÉÏ£¬×îºó¼õÉÙÎÒÃǵÄÐòÁÐΪһ¸öµ¥Ò»µÄ·µ»ØÖµ£ºÈç¹û³õʼֵinit¸ø¶¨£¬µÚÒ»¸ö±È½Ï»áÊÇinitºÍµÚÒ»¸öÐòÁÐÔªËØ¶ø²»ÊÇÐòÁеÄÍ·Á½¸öÔªËØ¡£
ÀýÈ磺
>>> red
¸Õ¸ÕдÍêPythonǶÈ벿·ÖµÄ¼òµ¥Àý×Ó£¨²î²»¶à¹»ÏÖÔÚÓõÄÀ²~£©£¬½Ó×Å¿´µãʵ¼ÊµÄ¶«Î÷£¬Èç¹ûûÓÐÕâЩӦÓõϰ£¬Ç°ÃæµÄǶÈëҲûÓÐʲôÒâÒ塣ǶÈëµÄÆäËû²¿·ÖÒÔºóÓöµ½ÔÙд£¬²»±ØÒ»ÏÂ×Ó°ÑÄÇЩº¯Êý¶¼Åª¶®£¬ÊǰÉ~
OK£¬À´¿´Python¿âÖÐÎÒÈÏΪ×îºÃÍæµÄÒ»²¿·Ö£¬Ò²¾ÍÊÇPython¶ÔÍøÒ³µÄ²Ù×÷¡£
ÕâÆª¼òµ¥ËµÏÂÈçºÎͨ¹ýÍøÖ·ÏÂÔØÍøÒ³£¬Ç°ÌᵱȻÊÇ ......
¡¡¡¡PythonÖпÉÒÔʹÓÃ×°ÊÎÆ÷¶Ôº¯Êý½øÐÐ×°ÊΣ¨»ò˵°ü×°£©£¬ÀûÓÃÕâ¸öÌØÐÔ£¬¿ÉÒԺܷ½±ã¡¢¼ò½àµØ½â¾öһЩÎÊÌ⣬±ÈÈç»ñµÃº¯ÊýÖ´ÐÐʱ¼äµÄÎÊÌâ¡£
¡¡¡¡Ê×ÏÈ£¬ÎÒÃǶ¨ÒåÒ»¸öº¯Êý£¬ÈçÏ£º
¡¡¡¡def exeTime(func):
def newFunc(*args, **args2):
t0 = time.time()
print "@%s, {%s} start" % (time.strftime("%X", time.local ......