介紹匿名函數以前不妨先看看這兩個函數:express
def add(x,y): return x+y print(add(1,2)) #3
f=lambda x,y:x+y
print(f(1,2))
上面這兩段代碼實現的功能是徹底同樣的。第二段代碼裏面:lambda x,y:x+y 這就是一個函數,因爲沒有函數名稱,因此稱匿名函數。函數
下面仔細介紹一下匿名函數:spa
1、匿名函數:沒有函數名字。用lambda聲明。 2、匿名函數的格式: lambda arg1,arg2,.....argn:expression 冒號是分隔符,冒號前是函數的參數,冒號後帶上一個表達式。 三、匿名函數不須要用return。後面的表達式就是返回值
四、調用方法:將匿名函數賦值給一個變量,而後這個變量就能夠像一個正常的函數同樣使用
# 無參數: f=lambda :'abc' print(f()) #'abc' #帶多個參數的 f=lambda a,b,c: a+b+c print(f(1,2,3)) #6 #帶默認參數 f=lambda a,b,c=4: a+b+c print(f(1,2)) #7
匿名函數的高級使用技巧:結合map.reduce,filter使用:code
from functools import reduce data=[1,2,3,4,5,6,7,8,9,10] print(reduce(lambda x,y:x+y,data)) #55
data=[1,2,3,4,5,6,7,8,9,10] print(list(map(lambda x:x*x,data))) #輸出爲[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]