filter使用python3代碼進(jìn)行迭代元素的實(shí)例詳解
我們通常說(shuō)使用函數(shù)對(duì)列表進(jìn)行篩選,有多少小伙伴能夠理解篩選的原理呢?
今天小編為大家?guī)?lái)了新朋友filter函數(shù),相較于以往能實(shí)現(xiàn)篩選功能的函數(shù)來(lái)說(shuō)是復(fù)雜的,這也算是對(duì)于一些有難度函數(shù)學(xué)習(xí)的考驗(yàn)。我們會(huì)著重于探討filter函數(shù)篩選后的返回值,對(duì)于返回值的迭代進(jìn)行一些原理的分析。
filter用于過(guò)濾篩選可迭代對(duì)象中的元素,如果符合條件則返回對(duì)應(yīng)的元素序列(類型為filter),filter接受兩個(gè)參數(shù),一個(gè)是函數(shù)用于篩選元素,返回值為T(mén)rue或Flase,另一個(gè)是可迭代對(duì)象。
filter用法
evens = filter(is_odd, range(-5, 10)) print(list(evens))
示例結(jié)果:
[2, 4, 6, 8]
filter函數(shù)的返回值是一個(gè)可迭代對(duì)象,這一點(diǎn)很關(guān)鍵,這也是為什么我說(shuō)filter函數(shù)是高級(jí)語(yǔ)法的原因。
為什么不返回列表?如果返回的是列表,那么在filter函數(shù)執(zhí)行過(guò)程中,就必須對(duì)列表里的每一個(gè)數(shù)據(jù)進(jìn)行對(duì)2取模運(yùn)算,這樣很浪費(fèi)空間,因此filter在實(shí)現(xiàn)時(shí)采用了迭代器技術(shù),將計(jì)算延遲到對(duì)filter函數(shù)返回結(jié)果進(jìn)行遍歷時(shí)才進(jìn)行。
到此這篇關(guān)于filter使用python3代碼進(jìn)行迭代元素的實(shí)例詳解的文章就介紹到這了,更多相關(guān)filter如何使用python3代碼進(jìn)行迭代元素內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Django模板變量如何傳遞給外部js調(diào)用的方法小結(jié)
這篇文章主要給大家介紹了關(guān)于Django模板變量如何傳遞給外部js調(diào)用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。2017-07-07
python numpy之np.random的隨機(jī)數(shù)函數(shù)使用介紹
這篇文章主要介紹了python numpy之np.random的隨機(jī)數(shù)函數(shù)使用介紹,需要的朋友可以參考下2019-10-10
matplotlib中l(wèi)egend位置調(diào)整解析
這篇文章主要介紹了matplotlib中l(wèi)egend位置調(diào)整解析,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12
Python使用difflib標(biāo)準(zhǔn)庫(kù)實(shí)現(xiàn)查找文本間的差異
在文本處理和比較中,查找文本之間的差異是一項(xiàng)常見(jiàn)的任務(wù),本文將詳細(xì)介紹如何使用difflib模塊來(lái)查找文本之間的差異,包括單行和多行文本的比較、生成差異報(bào)告,需要的可以參考下2024-03-03

