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