å½ç¶æ¯å½æ°å¼é£ä¸å¥é»éæ³å¦ï¼ä¸å¬æç»ç»éæ¥ã lambda表达å¼ä¹å°±æ¯å¿åå½æ°ãç¨æ³ï¼lambda åæ°å表 : è¿åå¼ä¾ï¼ +1å½æ° f=lambda x:x+1 maxå½æ°ï¼æ¡ä»¶è¯å¥çåæ³å¦ä¸ï¼ f_max=lambda x,y:x if x>y else y ä¸è¿°å®ä¹çå½æ°ä¸ç¨defå®ä¹çå½æ°æ²¡æåºå«ï¼èä¸å·¦è¾¹çf=å¨æäºæ
åµä¸å¹¶ä¸æ¯å¿
è¦çã filter,map,reduce filterå½æ°æ¥å两个åæ°ï¼ç¬¬ä¸ä¸ªæ¯è¿æ»¤å½æ°ï¼ç¬¬äºä¸ªæ¯å¯éåç对象ï¼ç¨äºéæ©åºææ满足è¿æ»¤æ¡ä»¶çå
ç´ ï¼ä¸åçæ¬çfilterçè¿åå¼ç¨æåºå«ï¼æç¨çæ¯python3.5ï¼filterè¿åçæ¯ç»è¿è¿æ»¤çå¯éå对象ãä¾ï¼å»é¤å°ååæ¯ s=filter(lambda x:not str(x).islower(),"asdasfAsfBsdfC") for ch in s: print(ch) mapå½æ°æ¥åçåæ°ç±»åä¸filter类似ï¼å®ç¨äºæå½æ°ä½ç¨äºå¯éå对象çæ¯ä¸ä¸ªå
ç´ ã类似äºæ°å¦ä¸æ å°çæ¦å¿µãä¾ï¼æ±y=2x+1ï¼å·å·ç¨äºä¸ä¸rangeå½æ°çæå®ä¹åï¼ s=map(lambda x:2*x+1,range(6)) for x in s: print(x) reduceå½æ°å¯¹æ¯ä¸ªå
ç´ ä½ç´¯è®¡æä½ï¼å®æ¥åç第ä¸ä¸ªåæ°å¿
é¡»æ¯æ两个åæ°çå½æ°ãä¾ï¼æ±å from functools import reduce s=reduce(lambda x,y:x+y,range(1,6)) print(s) æ±ä¹ç§¯ï¼ç¬¬ä¸ä¸ªå¯éåæ°è¡¨ç¤ºç´¯è®¡åéçåå¼ï¼ from functools import reduce s=reduce(lambda x,y:x*y,range(1,6),1) print(s) æ¯éå(curry)å½æ°å¦æä¸ä¸ªå½æ°éè¦2个åæ°ï¼èä½ åªä¼ å
¥ä¸ä¸ªåæ°ï¼é£ä¹ä½ å°±å¯ä»¥å¾å°ä¸ä¸ªæ¯éåçå½æ°ï¼è¿æ¯å½æ°å¼ç¼ç¨è¯è¨çéè¦ç¹æ§ä¹ä¸ï¼éæ¾çæ¯ï¼python并ä¸è½å¨è¯æ³å±é¢æ¯ææ¯éåè°ç¨ï¼ä½å®å¨åºä¸æä¾äºæ¥å£ãä¾ï¼ *3å½æ° f_mul=lambda x,y:x*y from functools import partial mul3=partial(f_mul,3) print(mul3(1)) print(mul3(6)) æå
ä¸è§£å
æç¹ç±»ä¼¼äºå½æ°å¼ä¸ç模å¼å¹é
ï¼ç¥çµå¼ºã t=(1,2,3) x,y,z=t å表çæå¼è¿ä¸ªä¹æç¹çµå¼ºï¼ä¸ç¥éä¸¥æ ¼æä¹ä¸è®²å±ä¸å±äºå½æ°å¼é£æ ¼ãä¾ï¼çæå¥æ°åºå l=[2*x+1 for x in range(10)] for i in l: print(i) æåæ¥ä¸ä¸ªå½©èï¼ä»¥åæç主æå°çç¨è°åå½æ°æ¥ç¾é¢çç®æ³ï¼å¿äºåºå¤äºï¼ä¾µå ï¼ from PIL import Image from math import sqrt im = Image.open("a.jpg") ret= im.convert(mode="RGB") ret = ret.point(lambda x:sqrt(x)*sqrt(255)) ret.save("b.jpg")
温馨提示:答案为网友推荐,仅供参考