Python淺析匿名函數(shù)lambda的用法
lambda函數(shù)的定義
lambda函數(shù)是Python中常用的內(nèi)置函數(shù),又稱為匿名函數(shù)。和普通函數(shù)相比,它只有函數(shù)體,省略了def和return,使得結(jié)構(gòu)看起來(lái)更精簡(jiǎn)。其基本調(diào)用語(yǔ)法如下:
lambda [var1 [,var2,…varn]]:expression
[var1 [,var2,…varn]]:形式參數(shù),可以理解為入?yún)?,供表達(dá)式使用。
expression:函數(shù)表達(dá)式,其結(jié)果為lambda函數(shù)的返回值。
Lambda函數(shù)在Python中
lambda 函數(shù)是一個(gè)匿名函數(shù)(即,沒(méi)有名稱定義),它可以接受任意數(shù)量的參數(shù),但與普通函數(shù)不同,它只計(jì)算并返回一個(gè)表達(dá)式
Python 中的 lambda 函數(shù)使用以下語(yǔ)法表達(dá):
lambda 參數(shù):表達(dá)式
lambda 函數(shù)包括三個(gè)元素:
- 關(guān)鍵字 lambda:與普通函數(shù)中 def 類似
- 參數(shù):支持傳遞位置和關(guān)鍵字參數(shù),與普通函數(shù)一樣
- 正文:處理定參數(shù)的表達(dá)式
需要注意的是,普通函數(shù)不同,這里不需要用括號(hào)將 lambda 函數(shù)的參數(shù)括起來(lái),如果 lambda 函數(shù)有兩個(gè)或更多參數(shù),我們用逗號(hào)列出它們
我們使用 lambda 函數(shù)只計(jì)算一個(gè)短表達(dá)式(理想情況下,單行)并且只計(jì)算一次,這意味著我們以后不會(huì)再?gòu)?fù)用這個(gè)函數(shù)。通常來(lái)說(shuō)我們會(huì)將 lambda 函數(shù)作為參數(shù)傳遞給高階函數(shù)(接受其他函數(shù)作為參數(shù)的函數(shù)),例如 Python 內(nèi)置函數(shù),如 filter()、map() 或 reduce()等
匿名函數(shù),顧名思義,沒(méi)有名字的函數(shù)
我來(lái)看一下語(yǔ)法:
lambda [list]: 表達(dá)式
這里介紹一下參數(shù)
"""
[list]:表示參數(shù)列表,
注意:參數(shù)與表達(dá)式之間需要冒號(hào)來(lái)區(qū)分
表達(dá)式 :表達(dá)式方法非常多,表達(dá)形式也非常多
返回值 :為表達(dá)式的結(jié)果value
"""
例如,上方的代碼這里
lambda x:x % n > 0
x 為需要傳入的參數(shù),而 x % n > 0 為表達(dá)式,之間需要用冒號(hào)進(jìn)行引用,計(jì)算的表達(dá)式結(jié)果為返回值這里舉例說(shuō)明:如果設(shè)計(jì)一個(gè)求 2 個(gè)數(shù)之和的函數(shù),使用普通函數(shù)的方式,定義如下:
def add(x, y):
return x + y
print(add(3, 4))我們看到只有一行表達(dá)式,直接運(yùn)算結(jié)果返回值,那這時(shí)我們?nèi)绻褂媚涿瘮?shù)一行代碼即可完成
add = lambda x, y: x + y print(add)
這里我們將直接寫出我們的結(jié)果,我們可以看到對(duì)于比較單行返回的函數(shù),使用 lambda 表達(dá)式可以省去定義函數(shù)的過(guò)程,讓代碼更加簡(jiǎn)潔,針對(duì)不需要多次復(fù)用的函數(shù),使用 lambda 表達(dá)式可以在用完之后立即釋放,提高程序 執(zhí)行的性能。而且還能配合其他的一些高階函數(shù)配合使用
# -*- coding: utf-8 -*-
fun1 = lambda a, b: x + y
x = int(input('x='))
y = int(input('y='))
print('x+y=', fun1(x, y))
def add(a, b):
print('add=', a + b)
add(x, y)
fun = lambda a, b: a ** 2
f = fun(2, 4)
print(type(fun))
print(f)
到此這篇關(guān)于Python淺析匿名函數(shù)lambda的用法的文章就介紹到這了,更多相關(guān)Python lambda內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python爬取肯德基官網(wǎng)ajax的post請(qǐng)求實(shí)現(xiàn)過(guò)程
這篇文章主要介紹了Python爬取肯德基官網(wǎng)ajax的post請(qǐng)求實(shí)現(xiàn)過(guò)程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家學(xué)有所得,多多進(jìn)步2021-10-10
Python線程池ThreadPoolExecutor使用方式
這篇文章主要介紹了Python線程池ThreadPoolExecutor使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS淺析
這篇文章主要給大家介紹了關(guān)于Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧2018-05-05
3個(gè)Python?SQLAlchemy數(shù)據(jù)庫(kù)操作功能詳解
Python?SQLAlchemy?是一個(gè)強(qiáng)大且多功能的?Python?SQL?工具包和對(duì)象關(guān)系映射?(ORM)?系統(tǒng),提供了一整套眾所周知的企業(yè)級(jí)持久性模式,本文為大家整理了它必須了解的3個(gè)數(shù)據(jù)庫(kù)操作功能,希望對(duì)大家有所幫助2023-09-09
Python使用windows設(shè)置定時(shí)執(zhí)行腳本
這篇文章主要介紹了Python使用windows設(shè)置定時(shí)執(zhí)行腳本,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
教你用python將數(shù)據(jù)寫入Excel文件中
Python作為一種腳本語(yǔ)言相較于shell具有更強(qiáng)大的文件處理能力,下面這篇文章主要給大家介紹了關(guān)于如何用python將數(shù)據(jù)寫入Excel文件中的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-02-02
PyCharm使用Docker鏡像搭建Python開(kāi)發(fā)環(huán)境
這篇文章主要介紹了PyCharm使用Docker鏡像搭建Python開(kāi)發(fā)環(huán)境,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12

