Python中l(wèi)ambda表達式的用法示例小結(jié)
Python中的lambda表達式是一種創(chuàng)建匿名函數(shù)的方式,它們可以用于任何需要函數(shù)對象的地方,尤其是在簡化和減少代碼量方面非常有用。
lambda表達式本身是一個非?;A(chǔ)的python函數(shù)語法,其基本功能跟使用def所定義的python函數(shù)是一樣的,只是lambda表達式基本在一行以內(nèi)就完整的表達了整個函數(shù)的運算邏輯。這里我們簡單展示一些lambda表達式的使用示例,以供參考。
二元求和
首先我們嘗試一個最簡單的二元求和的ipython案例,輸入兩個參數(shù)x和y,返回這兩個元素的和:
[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)用的場景,比如凸優(yōu)化算法,或者是python中的map函數(shù)實現(xiàn),這里以map函數(shù)為示例展示一下lambda函數(shù)在其中的用法:
In [9]: list(map(lambda x:x**2, range(10))) #學(xué)習(xí)中遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流群:153708845 Out[9]: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
去掉奇數(shù)
在def所定義的python函數(shù)中,我們可以執(zhí)行任意的python格式的代碼,但是在lambda表達式下,像if這種常見的條件判斷語句的語法要發(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]
這個案例演示的是,輸入一個數(shù)組,經(jīng)過一些運算之后保留偶數(shù),而用None替換所有的奇數(shù)。這里面用到的運算符是>>移位算符,其等價于常用的//符號。但是這非常值得引起重視,因為在有些語言中,移位算符的操作速度要高于四則運算的算符。
總結(jié)
本文主要展示了一些lambda表達式的使用示例,通過這些示例,我們可以了解到lambda表達式的常用語法以及使用的場景。在一般情況下,其最大的意義還是簡化了python中函數(shù)的定義方式,在可讀性上遠不如def所定義的函數(shù)。
到此這篇關(guān)于Python中l(wèi)ambda表達式的用法的文章就介紹到這了,更多相關(guān)Python lambda表達式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python MNIST手寫識別數(shù)據(jù)調(diào)用API的方法
這篇文章主要介紹了python MNIST手寫識別數(shù)據(jù)調(diào)用API的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08Selenium定時刷新網(wǎng)頁的實現(xiàn)代碼
這篇文章主要介紹了Selenium定時刷新網(wǎng)頁的實現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10