lambda函数 RUNOOB python练习题49
用來(lái)練手的python練習(xí)題,原題鏈接python練習(xí)實(shí)例49
該練習(xí)題主要是關(guān)于lambda函數(shù)的使用方法,本文就python中的lambda函數(shù)做出一點(diǎn)總結(jié)。
1. lambda函數(shù)的定義與調(diào)用
在python中,我們都知道使用def關(guān)鍵詞來(lái)定義一個(gè)函數(shù), 例如一個(gè)最簡(jiǎn)單的,返回值是他的參數(shù)的函數(shù)identity,如下所示:
def identity(x):return x使用lambda可以只用一行就實(shí)現(xiàn)identity函數(shù)的定義:
ident = lambda x : x調(diào)用如下:
print(ident(2))輸出結(jié)果如下:
lambda函數(shù)的定義非常簡(jiǎn)單,以上述函數(shù)為例,ident是函數(shù)的名字,lambda關(guān)鍵字后跟該lambda函數(shù)的參數(shù),冒號(hào)后是該函數(shù)的返回值。調(diào)用lambda函數(shù)和調(diào)用普通函數(shù)一樣,函數(shù)名 + 括號(hào)內(nèi)參數(shù)。
此外,lambda函數(shù)也有自己的獨(dú)有性質(zhì),即lambda函數(shù)可以使用立即調(diào)用的函數(shù)表達(dá)形式(IIFE)。我們可以在定義lambda函數(shù)的同時(shí)進(jìn)行調(diào)用,此時(shí)lambda函數(shù)也不再需要一個(gè)用于調(diào)用的函數(shù)名了:
print((lambda x : x+1)(2))輸出結(jié)果如下:
2. lambda函數(shù)在高階函數(shù)中的應(yīng)用
lambda函數(shù)因?yàn)槠浜?jiǎn)單的定義方式,在很多高階函數(shù)的定義中會(huì)被使用。tips: 高階函數(shù)即,函數(shù)存在至少一個(gè)參數(shù)是函數(shù)且該函數(shù)的返回值是一個(gè)函數(shù)。
舉例如下:
high_ord_func = lambda x, func: x + func(x)print(high_ord_func(2, lambda x: x * x))輸出結(jié)果如下:
這個(gè)高階函數(shù)還可以寫(xiě)成:
輸出結(jié)果同樣也是6。
高階函數(shù)可以類(lèi)比C++中的模板函數(shù)。當(dāng)我們定義函數(shù)high_ord_func=lambdax,func:x+func(x)high\_ord\_func = lambda x, func: x + func(x)high_ord_func=lambdax,func:x+func(x) 時(shí),可以理解為我們定義了一類(lèi)函數(shù)模板,這類(lèi)模板函數(shù)都有兩個(gè)參數(shù),變量x以及一個(gè)函數(shù)func(x),返回值為x+func(x)。當(dāng)我們要使用函數(shù)時(shí),需要將這些函數(shù)模板實(shí)例化,同樣是給未初始化的參數(shù)賦值。
3. lambda函數(shù)使用的語(yǔ)法注意點(diǎn)
lambda函數(shù)作為一種單行的python函數(shù)定義方式,相比傳統(tǒng)的def定義函數(shù),更加簡(jiǎn)潔優(yōu)雅,但同時(shí)lambda函數(shù)也有自身的局限性。
首先當(dāng)我們使用def定義普通函數(shù)時(shí),可以對(duì)參數(shù)類(lèi)型進(jìn)行注釋。但是當(dāng)使用lambda定義時(shí),就不再能使用類(lèi)型注釋了。
而且使用lambda定義函數(shù)時(shí),不能加入例如return, assert, pass, raise等聲明,否則會(huì)導(dǎo)致syntax error。
\newline
\newline
\newline
\newline
參考文章: How to Use Python Lambda Functions
總結(jié)
以上是生活随笔為你收集整理的lambda函数 RUNOOB python练习题49的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: RUNOOB python练习题47 交
- 下一篇: python random随机数 RUN