日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

lambda函数 RUNOOB python练习题49

發(fā)布時(shí)間:2023/11/30 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 lambda函数 RUNOOB python练习题49 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

用來練手的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)鍵詞來定義一個(gè)函數(shù), 例如一個(gè)最簡單的,返回值是他的參數(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ù)的定義非常簡單,以上述函數(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)槠浜唵蔚亩x方式,在很多高階函數(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ù)還可以寫成:

def high_ord_func(x,func):return x + func(x)a = high_ord_func(2,lambda x: x+2) print(a)

輸出結(jié)果同樣也是6。

高階函數(shù)可以類比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í),可以理解為我們定義了一類函數(shù)模板,這類模板函數(shù)都有兩個(gè)參數(shù),變量x以及一個(gè)函數(shù)func(x),返回值為x+func(x)。當(dāng)我們要使用函數(shù)時(shí),需要將這些函數(shù)模板實(shí)例化,同樣是給未初始化的參數(shù)賦值。

3. lambda函數(shù)使用的語法注意點(diǎn)

lambda函數(shù)作為一種單行的python函數(shù)定義方式,相比傳統(tǒng)的def定義函數(shù),更加簡潔優(yōu)雅,但同時(shí)lambda函數(shù)也有自身的局限性。
首先當(dāng)我們使用def定義普通函數(shù)時(shí),可以對參數(shù)類型進(jìn)行注釋。但是當(dāng)使用lambda定義時(shí),就不再能使用類型注釋了。

def plusplus(a: int, b: int)->int:return a+b

而且使用lambda定義函數(shù)時(shí),不能加入例如return, assert, pass, raise等聲明,否則會(huì)導(dǎo)致syntax error。

\newline
\newline
\newline
\newline
參考文章: How to Use Python Lambda Functions

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的lambda函数 RUNOOB python练习题49的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。