亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python簡(jiǎn)明講解filter函數(shù)的用法

 更新時(shí)間:2023年04月07日 15:26:46   作者:阿黎逸陽(yáng)  
本文和你一起來(lái)探索Python中的filter函數(shù),讓你以最短的時(shí)間明白這個(gè)函數(shù)的原理。也可以利用碎片化的時(shí)間鞏固這個(gè)函數(shù),讓你在處理工作過(guò)程中更高效

任何事情都是由量變到質(zhì)變的過(guò)程,學(xué)習(xí)Python也不例外。只有把一個(gè)語(yǔ)言中的常用函數(shù)了如指掌了,才能在處理問(wèn)題的過(guò)程中得心應(yīng)手,快速地找到最優(yōu)方案。

一、filter函數(shù)的定義

filter函數(shù)是Python中常用的內(nèi)置函數(shù),調(diào)用無(wú)需加載庫(kù),直接使用即可。它主要用來(lái)根據(jù)特定條件過(guò)濾迭代器中不符合條件的元素,返回一個(gè)惰性計(jì)算的filter對(duì)象或迭代器。需要用list函數(shù)進(jìn)行轉(zhuǎn)換,才能得到符合的條件元素組成的新列表。

其基本調(diào)用語(yǔ)法如下:

filter(function or None, iterable)

function:函數(shù),作用是對(duì)iterable中的每個(gè)元素判斷是否符合特定條件。

None:不調(diào)用任何函數(shù),只對(duì)可迭代對(duì)象中的元素本身判斷真假,保留為真的元素。

iterables:可迭代對(duì)象(序列、字典等)。

二、filter函數(shù)實(shí)例

求一個(gè)序列中大于零的元素組成的新序列

我們先來(lái)看下filter函數(shù)不加list的結(jié)果,代碼如下:

c = [-10, 28, 9, -5, 30, 5]
filter(lambda a:a>0, c)

得到結(jié)果:

<filter at 0x27950dbb9d0>

返回一個(gè)惰性計(jì)算的filter對(duì)象或迭代器。接下來(lái)看下用list函數(shù)進(jìn)行轉(zhuǎn)換會(huì)得到什么,代碼如下:

c = [-10, 28, 9, -5, 30, 5]
list(filter(lambda a:a>0, c))

得到結(jié)果:

[28, 9, 30, 5]

從結(jié)果知,filter函數(shù)的作用是挑選出了序列c中大于0的元素組成了新的對(duì)象或迭代器。通過(guò)list函數(shù)進(jìn)行轉(zhuǎn)換,進(jìn)而得到符合條件的元素組成的新列表。如果有朋友對(duì)代碼中的lambda函數(shù)不熟悉,可以參考【Python常用函數(shù)】一文讓你徹底掌握Python中的lambda函數(shù)。

求序列中非零數(shù)組成的新序列

在filter函數(shù)定義中提到,filter函數(shù)中參數(shù)None表示不調(diào)用任何函數(shù),只對(duì)可迭代對(duì)象中的元素本身判斷真假,保留為真的元素。

測(cè)試代碼如下:

#找出序列中的非0數(shù)
c2 = [4, 9, 0, -5, -8, 7, 0]
list(filter(None, c2))

得到結(jié)果:

[4, 9, -5, -8, 7]

由于0在Python中默認(rèn)為False,非0默認(rèn)為T(mén)rue,所以在篩選過(guò)程中對(duì)0進(jìn)行了過(guò)濾。

求字典中大于2的鍵組成的新序列

在filter函數(shù)定義中提到,它對(duì)可迭代對(duì)象進(jìn)行處理,所以包括了列表和字典等對(duì)象。前兩個(gè)例題都是對(duì)列表進(jìn)行處理,本例看下對(duì)字典的處理。代碼如下:

#找出字典中大于2的鍵
list(filter(lambda x:x>2, {1:'楊紫', 2:'劉詩(shī)雯', 3:'張繼科', 4:'王明', 5:'劉明'}))

得到結(jié)果:

[3, 4, 5]

從結(jié)果知,filter函數(shù)對(duì)字典進(jìn)行處理的時(shí)候,篩選的對(duì)象是字典的鍵,而不是字典的值。

求100以內(nèi)既是3的倍數(shù)又是奇數(shù)的正整數(shù)

最后我們來(lái)看一個(gè)小學(xué)常常碰到的題,求100以內(nèi)既是3的倍數(shù)又是奇數(shù)的正整數(shù)。代碼如下:

#求100以內(nèi)既是奇數(shù)又是3的倍數(shù)的正整數(shù)
import numpy as np
list(filter(lambda x:x%2!=0 and x%3==0, np.arange(1, 101)))

得到結(jié)果:

[3, 9, 15, 21, 27, 33, 39, 45, 51, 57, 63, 69, 75, 81, 87, 93, 99]

其中np.arange(1, 101))表示1到100公差為1的等差數(shù)列。

x%2!=0表示該數(shù)不能整除2,即為奇數(shù)。

x%3==0表示該數(shù)能整除3,即為3的倍數(shù)。

可以人工復(fù)核一下,發(fā)現(xiàn)Python得到的結(jié)果是正確的。

到此這篇關(guān)于Python簡(jiǎn)明講解filter函數(shù)的用法的文章就介紹到這了,更多相關(guān)Python filter函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python實(shí)現(xiàn)根據(jù)月份和日期得到星座的方法

    python實(shí)現(xiàn)根據(jù)月份和日期得到星座的方法

    這篇文章主要介紹了python實(shí)現(xiàn)根據(jù)月份和日期得到星座的方法,涉及Python操作字符串及數(shù)組的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-03-03
  • Numpy數(shù)值積分的實(shí)現(xiàn)

    Numpy數(shù)值積分的實(shí)現(xiàn)

    本文主要介紹了Numpy數(shù)值積分的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • python元組簡(jiǎn)單介紹

    python元組簡(jiǎn)單介紹

    這篇文章主要給大家分享中得python基礎(chǔ) 元組,元組的特點(diǎn)是一種不可變序列,一旦創(chuàng)建就不能修改,帶著些許了解和小編一起進(jìn)入文章得具體內(nèi)容吧
    2021-10-10
  • Flask??request?對(duì)象介紹

    Flask??request?對(duì)象介紹

    本文介紹?Flask??request?對(duì)象,一個(gè)完整的?HTTP?請(qǐng)求,包括客戶端向服務(wù)端發(fā)送的Request?請(qǐng)求和服務(wù)器端發(fā)送?Response?響應(yīng).為了能方便訪問(wèn)獲取請(qǐng)求及響應(yīng)報(bào)文信息,Flask?框架提供了一些內(nèi)建對(duì)象,下面就來(lái)說(shuō)一下?Flask?針對(duì)請(qǐng)求提供內(nèi)建對(duì)象reques,需要的朋友可以參考一下
    2021-11-11
  • matplotlib subplots 設(shè)置總圖的標(biāo)題方法

    matplotlib subplots 設(shè)置總圖的標(biāo)題方法

    今天小編就為大家分享一篇matplotlib subplots 設(shè)置總圖的標(biāo)題方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • 利用python實(shí)現(xiàn)你說(shuō)我猜游戲的完整實(shí)例

    利用python實(shí)現(xiàn)你說(shuō)我猜游戲的完整實(shí)例

    這篇文章主要給大家介紹了關(guān)于如何利用python實(shí)現(xiàn)你說(shuō)我猜游戲的相關(guān)資料,用到的都是一些簡(jiǎn)單的基礎(chǔ)的python語(yǔ)句,適合剛?cè)腴T(mén)的小白,可以嘗試跟著一起敲一下,感受一下編程中的樂(lè)趣,需要的朋友可以參考下
    2022-05-05
  • python基于socket函數(shù)實(shí)現(xiàn)端口掃描

    python基于socket函數(shù)實(shí)現(xiàn)端口掃描

    這篇文章主要為大家詳細(xì)介紹了python基于socket函數(shù)實(shí)現(xiàn)端口掃描,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • Django ORM 查詢管理器源碼解析

    Django ORM 查詢管理器源碼解析

    這篇文章主要介紹了Django ORM 查詢管理器源碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • pycharm2021激活碼使用教程(永久激活親測(cè)可用)

    pycharm2021激活碼使用教程(永久激活親測(cè)可用)

    pycharm2021激活碼是一個(gè)可以輕松幫助用戶免費(fèi)激活pycharm2021.1軟件的文件,雖然說(shuō)pycharm現(xiàn)在只是推出了2021.1的EAP版,但是如果你想先率先體驗(yàn)一波,那么就可以利用小編提供的這個(gè)激活碼來(lái)進(jìn)行使用啦,并這個(gè)激活碼是永久有效的
    2021-03-03
  • python 打印直角三角形,等邊三角形,菱形,正方形的代碼

    python 打印直角三角形,等邊三角形,菱形,正方形的代碼

    這篇文章主要介紹了python 打印直角三角形,等邊三角形,菱形,正方形的代碼,需要的朋友可以參考下
    2017-11-11

最新評(píng)論