ÔÚ½²Êö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
×òÌìÊÔÁËÏÂÓÃHTMLParserÀàÀ´½âÎöÍøÒ³£¬¿É·¢ÏÖ½á¹û²¢²»ÀíÏë¡£²»¹ÜÔõô˵£¬ÏÈдϹý³Ì£¬Ï£ÍûºóÀ´ÈËÄÜÔÚ´Ë»ù´¡ÉϽâ¾öÎÒËùÓöµ½µÄÎÊÌâ¡£
дÁË2Ì×½â¾ö·½°¸£¬µ±È»Õâ2Ì×Ö»ÄܶÔÌØ¶¨ÍøÕ¾ÓÐЧ¡£ÎÒÕâÀïÖ÷Ҫ˵Ã÷϶ÔBBCÖ÷Ò³www.bbc.co.ukºÍ¶ÔÍøÒ×www.163.comµÄ½âÎö¡£
¶ÔÓÚBBC£º
ÕâÌ×Òª¼òµ¥µÃ¶à£¬¿ÉÄÜÊǸÃÍøÒ³µÄ±àÂë±È½Ï±ê×¼°É
import ......
ѧϰpython±¾¾ÍÊÇÒµÓàÖ®ºÃ£¡Ê鱾ɶµÄ£¬¶¼ÎÞ´Ó˵Æð¡£ËùÒÔż¶ûÅöµ½Ò»¸öºÃµÄÄ£¿é£¬¾ÍÒªÔÚ²©¿ÍÖмǼһÏ£¬ÒÔ±ãÈÕºóÖ®Óá£ÊÇÒÔ¸ßÊÖÖ±½ÓµÄÆ®¹ý¡£ÏÂÃæÇÐÈëÕýÌâ¡£
globÊÇpython×Ô¼º´øµÄÒ»¸öÎļþ²Ù×÷Ïà¹ØÄ£¿é£¬ÄÚÈÝÒ²²»¶à£¬ÓÃËü¿ÉÒÔ²éÕÒ·ûºÏ×Ô¼ºÄ¿µÄµÄÎļþ£¬¾ÍÀàËÆÓÚWindowsϵÄÎļþËÑË÷£¬¶øÇÒÒ²Ö§³ÖͨÅä·û£¬*,?,[]Õ ......