當我們在傳入函式時,有些時候,不需要顯式地定義函式,直接傳入匿名函式更方便。在python中,對匿名函式提供了有限支援。還是以map()
函式為例,計算f(x)
的函式外,還可以直接傳入匿名函式:
print(list(map(lambda x:x*x,[1,2,3,4,5,6,7,8,9])))
輸出[1, 4, 9, 16, 25, 36, 49, 64, 81]
通過對比可以看出,匿名函式lambda x: x * x
實際上就是:
def f(x):
return x*x
關鍵字lambda
表示匿名函式,冒號前面的x
表示函式引數。
匿名函式有個限制,就是只能有乙個表示式,不用寫return
,返回值就是該表示式的結果。
用匿名函式有個好處,因為函式沒有名字,不必擔心函式名衝突。此外,匿名函式也是乙個函式物件,也可以把匿名函式賦值給乙個變數,再利用變數來呼叫該函式:
p=lambda x:x*x
print(p)
print(p(5))
輸出at 0x0000008b8e973b70>
25
同樣,也可以把匿名函式作為返回值返回,比如:
def build(x,y):
return lambda:x*x+y*y
請用匿名函式改造下面的**:
def is_odd(n):
return n % 2 == 1
l=list(filter(lambda x:x%2==1,range(1,20)))
print(l)
輸出[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
python對匿名函式的支援有限,只有一些簡單的情況下可以使用匿名函式。 python基礎 匿名函式
lambda匿名函式可以實現簡單的功能 sum lambda x,y x y print sum 4,2 結果為6def values a,b,fun print fun a,b values 11,22,lambda x,y x y 結果為33大資料要用到的三個重要函式 filter函式 filt...
python基礎 匿名函式
匿名函式的關鍵字為 lambda 冒號前面是形參 冒號後面是返回值 def fun args,kwargs return args,kwargs print fun 1,2,3,4,5 上面三行可以用下面以行代替 print lambda args,kwargs args,kwargs def ad...
python基礎 匿名函式
def 函式名 形參 pass def add x,y x yresult1 add 11,12 print result1的值為 s result1 print 50 匿名函式 執行乙個簡單的表示式 形式 變數 lambda 引數 表示式 匿名函式預設自帶 return func lambda x...