中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python?lambda函數怎么使用

發布時間:2022-06-29 09:50:05 來源:億速云 閱讀:169 作者:iii 欄目:開發技術

本篇內容介紹了“Python lambda函數怎么使用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

一、lambda函數的定義   

lambda函數是Python中常用的內置函數,又稱為匿名函數。和普通函數相比,它只有函數體,省略了def和return,使得結構看起來更精簡。其基本調用語法如下:

lambda [var1 [,var2,…varn]]:expression

[var1 [,var2,…varn]]:形式參數,可以理解為入參,供表達式使用。

expression:函數表達式,其結果為lambda函數的返回值。

二、lambda函數實例

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配合使用

高階函數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函數配合使用

如果我們想對一個數列按數值的絕對值進行排列,可以應用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函數怎么使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鹤岗市| 永仁县| 宁强县| 渝中区| 万安县| 峡江县| 伊宁县| 合江县| 富裕县| 红原县| 双鸭山市| 贺兰县| 当阳市| 琼中| 上蔡县| 新河县| 胶州市| 抚宁县| 台前县| 天柱县| 曲沃县| 灯塔市| 汕尾市| 蓬安县| 曲松县| 图木舒克市| 合山市| 雅安市| 桂东县| 汝阳县| 卫辉市| 北票市| 台湾省| 历史| 京山县| 淄博市| 灵丘县| 西盟| 安化县| 桐庐县| 南木林县|