您好,登錄后才能下訂單哦!
本篇內容介紹了“Python lambda函數怎么使用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
lambda函數是Python中常用的內置函數,又稱為匿名函數。和普通函數相比,它只有函數體,省略了def和return,使得結構看起來更精簡。其基本調用語法如下:
lambda [var1 [,var2,…varn]]:expression
[var1 [,var2,…varn]]:形式參數,可以理解為入參,供表達式使用。
expression:函數表達式,其結果為lambda函數的返回值。
定義一個lambda函數,將其賦值給一個變量,通過這個變量間接調用該函數。
fun_1 = lambda a,b: a*2+b*3 fun_1(1,2)
得到結果:
8
其中a,b是形式參數,即入參,供表達式a2+b3使用。
定義一個普通函數,語句如下:
def fun1(a,b): return a*2+b*3 fun1(1, 2)
得到結果:
8
可以發現應用lambda函數和普通函數的區別是少了def和return語句,且lambda函數直接寫在了一行,顯得更加精簡。不過在這里還沒有體現出匿名的屬性。
在上初中的時候,我們常常可以看到這樣一個題目:F(x)=ax^2+bx+c,求當a=2,b=3,c=4時,F(-1)、F(2)、F(5)的值。
方法一:應用lambda函數求解
F_x = lambda x:2*x**2+3*x+4 print(F_x(-1)) print(F_x(2)) print(F_x(5))
得到結果:
3
18
69
方法二:應用普通函數求解
def F_x(x): return 2*x**2+3*x+4 print(F_x(-1)) print(F_x(2)) print(F_x(5))
得到結果:
3
18
69
可以發現應用lambda函數和普通函數的求解結果是一樣的。
高階函數filter在后續文章中會詳細說明,它主要用來對列表進行過濾,挑選出列表中符合特定條件的值。比如想挑選出數列中3的倍數,語句如下:
cs_data = list([2, 8, 11, 12, 15, 6, 1, 7]) list(filter(lambda x:x%3==0, cs_data))
得到結果:
[12, 15, 6]
用常識也可以看出,最后的結果是挑選出了數列cs_data中3的倍數。和高階函數配合使用時,lambda函數的優點就進一步凸顯出來了。這時不需要提前定義一個普通函數,直接在高階函數內部將lambda函數的結果作為參數傳遞給高階函數即可,也真正做到了匿名。
如果我們想對一個數列按數值的絕對值進行排列,可以應用sorted函數和lambda函數配合實現,語句如下:
my_list = [3, 5, -2, 10, -6, 8] sorted(my_list, key=lambda x:abs(x))
得到結果:
[-2, 3, 5, -6, 8, 10]
可以發現得到的結果是按數值的絕對值排序后的數列。
“Python lambda函數怎么使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。