Python-map、reduce、filter、sorted函數(shù)-創(chuàng)新互聯(lián)

map、reduce、filter、sorted函數(shù)

Python內(nèi)置map、reduce、filter、sorted函數(shù)。

成都創(chuàng)新互聯(lián)作為成都網(wǎng)站建設(shè)公司,專注重慶網(wǎng)站建設(shè)公司、網(wǎng)站設(shè)計,有關(guān)企業(yè)網(wǎng)站建設(shè)方案、改版、費(fèi)用等問題,行業(yè)涉及紗窗等多個領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶的尊重與認(rèn)可。

map函數(shù)

map函數(shù)接受兩個參數(shù),一個是函數(shù),一個是Iterable(迭代對象),map將傳入的函數(shù)依次作用到序列的每個元素,并把結(jié)果作為新的Iterator返回

有一個函數(shù) f(x)=x2,要把這個函數(shù)作用到一個list [1,2,3,4]上,用map實(shí)現(xiàn):

Python-map、reduce、filter、sorted函數(shù)

map傳入第一個參數(shù)是 f 也就是f函數(shù)本身,結(jié)果 k 是一個Iterator,Iterator是惰性序列,通過 list() 函數(shù)讓他把整個序列計算出來并返回一個list。

上述計算也可以寫一個循環(huán)計算出來:

Python-map、reduce、filter、sorted函數(shù)

用循環(huán)寫出來不簡潔,用 map 函數(shù)一眼就可以看出來。

map函數(shù)還可以計算任意負(fù)載函數(shù),比如,把這個list所有字符串轉(zhuǎn)為數(shù)字:

Python-map、reduce、filter、sorted函數(shù)

只需要一行代碼。

reduce函數(shù)

reduce用法是把一個函數(shù)作用在一個序列[1,2,3,4,5]上,這個函數(shù)必須接收兩個參數(shù),reduce 把結(jié)果繼續(xù)和序列的下一個元素做累積計算,效果如下:

Python-map、reduce、filter、sorted函數(shù)

對一個序列求積:

Python-map、reduce、filter、sorted函數(shù)

把序列[1, 3, 5, 7, 9]變換成整數(shù)13579:

Python-map、reduce、filter、sorted函數(shù)

結(jié)合map、reduce函數(shù),把字符串'123.456'轉(zhuǎn)換成浮點(diǎn)數(shù)123.456:

Python-map、reduce、filter、sorted函數(shù)

filter()函數(shù)

和map()類似,filter()也接收一個函數(shù)和一個序列。和map()不同的是,filter()把傳入的函數(shù)依次作用于每個元素,然后根據(jù)返回值是True還是False決定保留還是丟棄該元素。

一個list中,刪掉奇數(shù),只保留偶數(shù):

Python-map、reduce、filter、sorted函數(shù)

(lambda是匿名函數(shù))

filter()函數(shù)返回的是一個Iterator,也就是一個惰性序列,所以要強(qiáng)迫filter()完成計算結(jié)果,需要用list()函數(shù)獲得所有結(jié)果并返回list。

sorted()函數(shù)

sorted()函數(shù)就可以對list進(jìn)行排序:

Python-map、reduce、filter、sorted函數(shù)

sorted()函數(shù)是一個高階函數(shù),它還可以接收一個key函數(shù)來實(shí)現(xiàn)自定義的排序,例如按絕對值大小排序:

Python-map、reduce、filter、sorted函數(shù)

key指定的函數(shù)將作用于list的每一個元素上,并根據(jù)key函數(shù)返回的結(jié)果進(jìn)行排序。對比原始的list和經(jīng)過key=abs處理過的list:

Python-map、reduce、filter、sorted函數(shù)

然后sorted()函數(shù)按照keys進(jìn)行排序,并按照對應(yīng)關(guān)系返回list相應(yīng)的元素:

Python-map、reduce、filter、sorted函數(shù)

字符串排序的例子:

Python-map、reduce、filter、sorted函數(shù)

默認(rèn)情況下,對字符串排序,是按照ASCII的大小比較的,由于'Z' < 'a',結(jié)果,大寫字母Z會排在小寫字母a的前面。

排序應(yīng)該忽略大小寫,按照字母序排序。要實(shí)現(xiàn)這個算法,不必對現(xiàn)有代碼大加改動,只要我們能用一個key函數(shù)把字符串映射為忽略大小寫排序即可。忽略大小寫來比較兩個字符串,實(shí)際上就是先把字符串都變成大寫(或者都變成小寫),再比較。

給sorted傳入key函數(shù),即可實(shí)現(xiàn)忽略大小寫的排序:

Python-map、reduce、filter、sorted函數(shù)

進(jìn)行反向排序,不必改動key函數(shù),可以傳入第三個參數(shù)reverse=True:

Python-map、reduce、filter、sorted函數(shù)

用sorted()排序的關(guān)鍵在于實(shí)現(xiàn)一個映射函數(shù)。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

當(dāng)前名稱:Python-map、reduce、filter、sorted函數(shù)-創(chuàng)新互聯(lián)
本文鏈接:http://muchs.cn/article14/egige.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、品牌網(wǎng)站設(shè)計、服務(wù)器托管外貿(mào)建站、App開發(fā)、域名注冊

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司