量化金融分析師AQF丨匿名函數(shù)并非 Python 獨有的語法現(xiàn)象,在 MATLAB 和其他腳本語言中都有類似匿名函數(shù)的表達。Python借鑒了這種語法設(shè)置,并用一種簡潔優(yōu)雅的代碼實現(xiàn)了匿名函數(shù)的表達。
以下是普通函數(shù)和匿名函數(shù)定義方式的差別及3個不同使用場合的例子:
In [1]:
# 普通函數(shù)的定義方式def func(*args, **kwards):
# expressions
return 0
In [2]:
# 匿名函數(shù)的定義方式# lambda 是標志匿名函數(shù)的關(guān)鍵字,其后是匿名函數(shù)的參數(shù),冒號后是匿名函數(shù)的返回值lambda args: expressions
In [3]:
#例1#可以將匿名函數(shù)賦值給一個變量,這樣可以實現(xiàn)對匿名函數(shù)的引用和重復(fù)使用func1 = lambda x: x + 5type(func1)
Out[3]:
function
In [4]:
# 以上匿名函數(shù)功能上等價于:def func2(x):
return x + 5# 兩者的區(qū)別在于,匿名函數(shù)本身沒有名字,賦值給變量的以后可以用變量名引用匿名函數(shù)func1(3), func2(3)
Out[4]:
(8, 8)
In [5]:
# 例2# 匿名函數(shù)可以有多個參數(shù)func3 = lambda x,y: x + yfunc3(3,5)
Out[5]:
8
匿名函數(shù)應(yīng)用最多的場景,是作為參數(shù)直接傳遞給其他函數(shù)。匿名函數(shù)最初的產(chǎn)生就是為了快速定義一次性使用的簡單函數(shù)。
In [6]:
# 例3# 匿名函數(shù)可以作為參數(shù)直接傳遞給其他函數(shù)from functools import reducer = [i for i in range(1,5)]print(r)# 匿名函數(shù)作為參數(shù)傳遞給reduce() 函數(shù)# 對reduce() 函數(shù)功能的說明,詳見下一篇推送 《Pyton基礎(chǔ)應(yīng)用之map&reduce》cumprod = reduce(lambda x,y: x * y, r)cumprod
[1, 2, 3, 4]
Out[6]:
24
附上GIF動圖,更直觀了解Python金融實戰(zhàn)應(yīng)用,如果對此還有任何疑問,歡迎點擊了解咨詢~那么祝大家學(xué)習(xí)愉快~
(8).jpg)
.jpg)
往期精彩回顧:
AQF研報解讀 | 海通量化-大類資產(chǎn)配置及模型研究
量化金融分析師AQF課程丨Python基礎(chǔ)應(yīng)用:map與reduce
量化金融分析師AQF交流答疑群:737550026
聲明▎更多內(nèi)容請關(guān)注微信號量化金融分析師。原創(chuàng)文章,歡迎分享,若需引用或轉(zhuǎn)載請保留此處信息。




