真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python的匿名函數(shù) python匿名函數(shù)有什么用

python的lambda函數(shù)是什么?

lambda就是匿名函數(shù),就是沒(méi)有名字的函數(shù),來(lái)自于于函數(shù)式編程的概念。

創(chuàng)新互聯(lián)于2013年成立,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站建設(shè)、做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元溆浦做網(wǎng)站,已為上家服務(wù),為溆浦各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220

函數(shù)如下:

def f(x):

return x+1

print f(4)

用lambda的話,寫(xiě)成這樣:

g = lambda x : x+1

print g(4)

簡(jiǎn)介

Python由荷蘭數(shù)學(xué)和計(jì)算機(jī)科學(xué)研究學(xué)會(huì)的Guido van Rossum 于1990 年代初設(shè)計(jì),作為一門(mén)叫做ABC語(yǔ)言的替代品。Python提供了高效的高級(jí)數(shù)據(jù)結(jié)構(gòu),還能簡(jiǎn)單有效地面向?qū)ο缶幊獭?/p>

Python語(yǔ)法和動(dòng)態(tài)類(lèi)型,以及解釋型語(yǔ)言的本質(zhì),使它成為多數(shù)平臺(tái)上寫(xiě)腳本和快速開(kāi)發(fā)應(yīng)用的編程語(yǔ)言,隨著版本的不斷更新和語(yǔ)言新功能的添加,逐漸被用于獨(dú)立的、大型項(xiàng)目的開(kāi)發(fā)。

python匿名函數(shù)(lambda表達(dá)式)

匿名函數(shù) 簡(jiǎn)單的需要用函數(shù)去解決的問(wèn)題 匿名函數(shù)的函數(shù)體 只有一行 也叫l(wèi)ambda表達(dá)式

python 使用 lambda 來(lái)創(chuàng)建匿名函數(shù)。

lambda函數(shù)的語(yǔ)法只包含一個(gè)語(yǔ)句,如下:

等價(jià)于

Python中的匿名函數(shù)——lambda函數(shù)

在Python中,lambda函數(shù)是一個(gè)簡(jiǎn)單的匿名函數(shù)。該函數(shù)沒(méi)有函數(shù)名,它可以有多個(gè)參數(shù),但函數(shù)只由一個(gè)表達(dá)式構(gòu)成。

lambda函數(shù)具體的格式如下:

lambda 參數(shù) : 表達(dá)式

其中, lambda 是關(guān)鍵字, 參數(shù) 是函數(shù)的參數(shù),可以有0至多個(gè)。冒號(hào)后面是表達(dá)式,也是該函數(shù)中的唯一的表達(dá)式,lambda函數(shù)會(huì)返回該表達(dá)式的返回值。

我們來(lái)看一個(gè)具體的例子。

在上述代碼中,number1, number2是lambda函數(shù)的參數(shù),number1**2+number**2是函數(shù)的表達(dá)式,該函數(shù)返回number1, number2兩個(gè)數(shù)的平方和。

上述代碼創(chuàng)建了一個(gè)lambda函數(shù)后將其賦值給變量sum_square, 在print函數(shù)中通過(guò)sum_square來(lái)調(diào)用這個(gè)lambda函數(shù)。

上述的lambda函數(shù)完全可用標(biāo)準(zhǔn)的函數(shù)來(lái)實(shí)現(xiàn),我們可以將上述代碼改寫(xiě)成下面的代碼。

在代碼中,定義了函數(shù)sum_square,該函數(shù)包含兩個(gè)參數(shù),并執(zhí)行一條語(yǔ)句并將該語(yǔ)句的執(zhí)行結(jié)果作為函數(shù)返回值。通過(guò)上述代碼可以幫助我們更直觀地理解lambda函數(shù)。

lambda函數(shù)的可讀性較差,那么為什么要有這樣奇怪的匿名函數(shù)呢?這個(gè)要從lambda的使用場(chǎng)合說(shuō)起。我們來(lái)看下面的代碼。

上述代碼定義了一個(gè)數(shù)值列表,調(diào)用python的內(nèi)置函數(shù)filter來(lái)生成一個(gè)新的迭代器。 filter函數(shù)的第一個(gè)參數(shù)為一個(gè)函數(shù),用于決定過(guò)濾的方法;第二個(gè)參數(shù)為一個(gè)可迭代的對(duì)象如列表、集合等。filter函數(shù)返回一個(gè)新的迭代器, 用于獲得滿足第一個(gè)函數(shù)為真的所有元素。在上述代碼中,我們給filter傳遞的第一個(gè)參數(shù)是一個(gè)匿名函數(shù):lambda number:number%3==0, 該函數(shù)在一個(gè)數(shù)整除3時(shí)為T(mén)rue,否則為False. filter函數(shù)會(huì)創(chuàng)建一個(gè)新的迭代器,通過(guò)調(diào)用上述匿名函數(shù)來(lái)判斷該元素是否滿足條件,得到所有3的倍數(shù)的數(shù)。

當(dāng)然,上述代碼也可以使用正常的函數(shù)方式來(lái)實(shí)現(xiàn),如下所示:

我們可以看到,所有匿名函數(shù)的功能都可以通過(guò)標(biāo)準(zhǔn)函數(shù)來(lái)實(shí)現(xiàn)。匿名函數(shù)常在調(diào)用其它函數(shù)(如filter, map等)時(shí)作為參數(shù)使用。使用匿名函數(shù)可以使代碼更為精簡(jiǎn)。匿名函數(shù)主要用于完成簡(jiǎn)單的任務(wù),如果匿名函數(shù)過(guò)于復(fù)雜,會(huì)導(dǎo)致可讀性較差,調(diào)試起來(lái)也比較困難,因此,強(qiáng)烈不建議使用lambda寫(xiě)天書(shū)般的代碼??傊?,要根據(jù)實(shí)際情況決定是否使用匿名函數(shù)。


標(biāo)題名稱(chēng):python的匿名函數(shù) python匿名函數(shù)有什么用
當(dāng)前地址:http://weahome.cn/article/dodjgjs.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部