網站首頁 編程語言 正文
你應該聽說過,應用Python,可以讓你處理一天的重復工作量,縮短到幾分鐘甚至更短。從此解放上班時間,研究更多更有效率的工作方法。進一步提升工作效率,讓工作更出彩。這不是廣告,這是實錘圖片。
一、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]
可以發現得到的結果是按數值的絕對值排序后的數列。
原文鏈接:https://blog.csdn.net/qq_32532663/article/details/125247034
相關推薦
- 2022-12-09 CALL命令無法在PowerShell中使用的原因及解決方法_DOS/BAT
- 2022-08-23 C++?primer超詳細講解順序容器_C 語言
- 2022-09-09 PyCharm?設置數據庫,查詢數據庫語句方式_python
- 2022-08-05 安卓請求權限
- 2022-05-05 python?scipy.spatial.distance?距離計算函數??_python
- 2023-07-28 el-tab 切換時添加動畫
- 2022-12-14 Android?MaterialAlertDialogBuilder修改按鈕屬性_Android
- 2023-01-28 GoLang?nil與interface的空指針深入分析_Golang
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支