什么是lambda函數?有什么好處?


什么是lambda函數?有什么好處?

 

lambda 函數是一個可以接收任意多個參數(包括可選參數)並且返回單個表達式值的匿名函數

好處:
1、lambda 函數比較輕便,即用即刪除,很適合需要完成一項功能,但是此功能只在此一處使用,
連名字都很隨意的情況下;
2、匿名函數,一般用來給 filter, map 這樣的函數式編程服務;
3、作為回調函數,傳遞給某些應用,比如消息處理

一、lambda函數的語法

 
          

 lambda語句中,冒號前是參數,可以有0個或多個,用逗號隔開,冒號右邊是返回值。lambda語句構建的其實是一個函數對象。

 
          

 1》無參數:

f = lambda:'Hello python lambda' f() #'Hello python lambda'

2》有參數,無默認值

f = lambda x,y: x*y f(6,7) #42

3》有參數,有默認值

 
          
f = lambda x=5, y=8: x*y f() #40
f(5,6) #30
4》和map, reduce, filter連用
 
foo = [2, 18, 9, 22, 17, 24, 8, 12, 27] print filter(lambda x: x % 3 == 0, foo)#python 2.x
list( filter(lambda x: x % 3 == 0, foo) )#python 3.x #[18, 9, 24, 12, 27]
 
print map(lambda x: x * 2 + 10, foo)#python 2.x
list( map(lambda x: x * 2 + 10, foo) )#python 3.x #[14, 46, 28, 54, 44, 58, 26, 34, 64]
 
from functools import reduce#python 3.x need import reduce
reduce(lambda x, y: x + y, foo) #139
 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM