目錄
- 一、前言
- 二、map()
- 三、filter()
- 四、reduce()
一、前言
我想介紹這些功能的主要原因是它們可以幫助您避免編寫循環(huán)。在某些情況下,循環(huán)運(yùn)行可能會(huì)很昂貴,除此之外,這些功能將有助于提高速度。
以下是本文將涵蓋的功能:
即使你之前已經(jīng)掌握了這些功能,用更多的理論和例子來(lái)強(qiáng)化你的知識(shí)也沒(méi)有害處。
所以不用多說(shuō),讓我們開(kāi)始吧!
二、map()
map()函數(shù)接受另一個(gè)函數(shù)作為形參,以及某種數(shù)組。其思想是將一個(gè)函數(shù)(作為參數(shù)傳入的函數(shù))應(yīng)用到數(shù)組中的每一項(xiàng)。
這很有用,有兩個(gè)原因:
1.你不必寫循環(huán)
2.它比循環(huán)快
讓我們看看它的實(shí)際應(yīng)用。我將聲明一個(gè)名為num_func()的函數(shù),它接受一個(gè)數(shù)字作為參數(shù)。這個(gè)數(shù)的平方除以2,然后返回。注意,操作是任意選擇的,你可以在函數(shù)內(nèi)部做任何你想做的事情:
現(xiàn)在讓我們聲明一個(gè)數(shù)字?jǐn)?shù)組,我們想對(duì)其應(yīng)用num_func()。注意map()本身會(huì)返回一個(gè)map對(duì)象,所以你需要將它轉(zhuǎn)換為一個(gè)列表:
看起來(lái)這個(gè)過(guò)程很成功。這里沒(méi)有什么開(kāi)創(chuàng)性的東西,但是盡可能避免循環(huán)是一件好事。
三、filter()
下面是另一個(gè)不錯(cuò)的函數(shù),它可以節(jié)省您的時(shí)間——無(wú)論是編寫還是執(zhí)行。顧名思義,這個(gè)想法是將只滿足特定條件的項(xiàng)保存在數(shù)組中。
就像map()一樣,我們可以事先聲明函數(shù),然后將它與可迭代對(duì)象列表一起傳遞給filter()。
讓我們看看它的實(shí)際應(yīng)用。我已經(jīng)聲明了一個(gè)名為more_than_15()的函數(shù),顧名思義,如果作為形參的項(xiàng)大于15,該函數(shù)將返回True:
接下來(lái),我們聲明一個(gè)數(shù)字?jǐn)?shù)組,并將它們作為第二個(gè)參數(shù)傳遞到filter()函數(shù)中:
正如你所料,只有三個(gè)值滿足給定的條件。再一次,這里沒(méi)有什么開(kāi)創(chuàng)性的東西,但看起來(lái)比循環(huán)好多了。
四、reduce()
現(xiàn)在reduce()與前兩個(gè)稍有不同。首先,我們必須從functools模塊中導(dǎo)入它。其主要思想是將給定函數(shù)應(yīng)用于項(xiàng)數(shù)組,并返回單個(gè)值作為結(jié)果。
最后一部分至關(guān)重要——reduce()不會(huì)返回項(xiàng)的數(shù)組,它總是返回單個(gè)值。讓我們看一個(gè)圖表來(lái)具體說(shuō)明這個(gè)概念。
5加10,結(jié)果是1515加12,結(jié)果是2727加18,結(jié)果是4545加25,結(jié)果是70
70是返回的值。首先從代碼實(shí)現(xiàn)開(kāi)始,讓我們從functools模塊導(dǎo)入reduce函數(shù),并聲明一個(gè)函數(shù)返回兩個(gè)數(shù)字的和:
現(xiàn)在,我們可以重新訪問(wèn)代碼,并驗(yàn)證一切正常運(yùn)行:
我希望你能在日常生活中利用這三個(gè)功能。速度的提高可能不是很大——這取決于您所處理的數(shù)據(jù)量——但是代碼通常會(huì)因?yàn)楦俚难h(huán)而看起來(lái)更好!
到此這篇關(guān)于這三個(gè)好用的python函數(shù)你不能不知道!的文章就介紹到這了,更多相關(guān)Python函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- python函數(shù)不定長(zhǎng)參數(shù)使用方法解析
- Python函數(shù)中不定長(zhǎng)參數(shù)的寫法
- python析構(gòu)函數(shù)用法及注意事項(xiàng)
- Python中函數(shù)的定義及其調(diào)用
- Python函數(shù)中的不定長(zhǎng)參數(shù)相關(guān)知識(shí)總結(jié)