python3 lambda表達(dá)式詳解
技術(shù)背景
lambda表達(dá)式本身是一個(gè)非?;A(chǔ)的python函數(shù)語(yǔ)法,其基本功能跟使用def所定義的python函數(shù)是一樣的,只是lambda表達(dá)式基本在一行以內(nèi)就完整的表達(dá)了整個(gè)函數(shù)的運(yùn)算邏輯。這里我們簡(jiǎn)單展示一些lambda表達(dá)式的使用示例,以供參考。
二元求和
首先我們嘗試一個(gè)最簡(jiǎn)單的二元求和的ipython案例,輸入兩個(gè)參數(shù)x和y,返回這兩個(gè)元素的和:
[dechin@dechin-manjaro 2021-python]$ ipython Python 3.8.5 (default, Sep 4 2020, 07:30:14) Type 'copyright', 'credits' or 'license' for more information IPython 7.19.0 -- An enhanced Interactive Python. Type '?' for help. In [1]: sum2 = lambda x,y: x+y In [2]: sum2(3,5) Out[2]: 8
結(jié)合map函數(shù)
在一些函數(shù)被頻繁調(diào)用的場(chǎng)景,比如凸優(yōu)化算法,或者是python中的map函數(shù)實(shí)現(xiàn),這里以map函數(shù)為示例展示一下lambda函數(shù)在其中的用法:
In [9]: list(map(lambda x:x**2, range(10))) Out[9]: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
去掉奇數(shù)
在def所定義的python函數(shù)中,我們可以執(zhí)行任意的python格式的代碼,但是在lambda表達(dá)式下,像if這種常見的條件判斷語(yǔ)句的語(yǔ)法要發(fā)生一定的變化,可以參考如下示例:
In [19]: list(map(lambda x:x if x-(x>>1)*2==0 else None, range(10))) Out[19]: [0, None, 2, None, 4, None, 6, None, 8, None]
這個(gè)案例演示的是,輸入一個(gè)數(shù)組,經(jīng)過一些運(yùn)算之后保留偶數(shù),而用None替換所有的奇數(shù)。這里面用到的運(yùn)算符是>>移位算符,其等價(jià)于常用的//符號(hào)。但是這非常值得引起重視,因?yàn)樵谟行┱Z(yǔ)言中,移位算符的操作速度要高于四則運(yùn)算的算符。
總結(jié)概要
本文主要展示了一些lambda表達(dá)式的使用示例,通過這些示例,我們可以了解到lambda表達(dá)式的常用語(yǔ)法以及使用的場(chǎng)景。在一般情況下,其最大的意義還是簡(jiǎn)化了python中函數(shù)的定義方式,在可讀性上遠(yuǎn)不如def所定義的函數(shù)。
以上就是python3 lambda表達(dá)式詳解的詳細(xì)內(nèi)容,更多關(guān)于python3 lambda表達(dá)式的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
django中操作mysql數(shù)據(jù)庫(kù)的方法
對(duì)象關(guān)系映射模式是一種為了解決面向?qū)ο笈c關(guān)系數(shù)據(jù)庫(kù)存在的互不匹配的現(xiàn)象的技術(shù),這篇文章主要介紹了django中操作mysql數(shù)據(jù)庫(kù)的方法,需要的朋友可以參考下2022-09-09Pygame實(shí)戰(zhàn)之實(shí)現(xiàn)經(jīng)典外星人游戲
這篇文章主要介紹了通過Pygame實(shí)現(xiàn)經(jīng)典的外星人游戲的示例代碼,文中的代碼講解詳細(xì),對(duì)我們了解Pygame有一定的幫助,感興趣的同學(xué)可以試一試2022-01-01PyTorch實(shí)現(xiàn)聯(lián)邦學(xué)習(xí)的基本算法FedAvg
這篇文章主要為大家介紹了PyTorch實(shí)現(xiàn)聯(lián)邦學(xué)習(xí)的基本算法FedAvg,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Python3實(shí)現(xiàn)對(duì)列表按元組指定列進(jìn)行排序的方法分析
這篇文章主要介紹了Python3實(shí)現(xiàn)對(duì)列表按元組指定列進(jìn)行排序的方法,結(jié)合實(shí)例形式分析了Python3針對(duì)列表排序的常見操作技巧與注意事項(xiàng),需要的朋友可以參考下2018-12-12使用Python統(tǒng)計(jì)代碼運(yùn)行時(shí)間的兩種方法
有時(shí)候我們需要記錄一個(gè)程序運(yùn)行的時(shí)間,下面這篇文章主要給大家介紹了關(guān)于使用Python統(tǒng)計(jì)代碼運(yùn)行時(shí)間的兩種方法,文中通過圖文以及示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12