最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

filter(function or None, iterable)

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

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

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

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

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

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

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

得到結(jié)果:

<filter at 0x27950dbb9d0>

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

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

得到結(jié)果:

[28, 9, 30, 5]

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

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

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

測試代碼如下:

#找出序列中的非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)為True,所以在篩選過程中對0進(jìn)行了過濾。

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

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

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

得到結(jié)果:

[3, 4, 5]

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

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

最后我們來看一個(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簡明講解filter函數(shù)的用法的文章就介紹到這了,更多相關(guān)Python filter函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中給字典排序的四種方法

    Python中給字典排序的四種方法

    我們經(jīng)常在計(jì)算機(jī)等級考試中遇到詞頻排序的問題,我們一般先通過生成字典的方法,統(tǒng)計(jì)詞的頻次,然后給字典排序,那么如何快速地給字典按照鍵值進(jìn)行排序呢,本文主要介紹了Python中給字典排序的四種方法,感興趣的可以了解一下
    2023-08-08
  • python3.x 將byte轉(zhuǎn)成字符串的方法

    python3.x 將byte轉(zhuǎn)成字符串的方法

    今天小編就為大家分享一篇python3.x 將byte轉(zhuǎn)成字符串的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 超詳細(xì)注釋之OpenCV實(shí)現(xiàn)視頻實(shí)時(shí)人臉模糊和人臉馬賽克

    超詳細(xì)注釋之OpenCV實(shí)現(xiàn)視頻實(shí)時(shí)人臉模糊和人臉馬賽克

    這篇文章主要介紹了OpenCV實(shí)現(xiàn)視頻實(shí)時(shí)人臉模糊和人臉馬賽克,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • Python實(shí)現(xiàn)的桶排序算法示例

    Python實(shí)現(xiàn)的桶排序算法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)的桶排序算法,簡單說明了桶排序的概念、原理及優(yōu)缺點(diǎn),并結(jié)合實(shí)例形式演示了Python實(shí)現(xiàn)桶排序的方法,需要的朋友可以參考下
    2017-11-11
  • Python素?cái)?shù)檢測的方法

    Python素?cái)?shù)檢測的方法

    這篇文章主要介紹了Python素?cái)?shù)檢測的方法,實(shí)例分析了Python素?cái)?shù)檢測的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • pandas讀取HTML和JSON數(shù)據(jù)的實(shí)現(xiàn)示例

    pandas讀取HTML和JSON數(shù)據(jù)的實(shí)現(xiàn)示例

    Pandas可以直接讀取html和JSON數(shù)據(jù),本文就來介紹一下pandas讀取HTML和JSON數(shù)據(jù)的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),感興趣的可以了解一下
    2024-01-01
  • AUC計(jì)算方法與Python實(shí)現(xiàn)代碼

    AUC計(jì)算方法與Python實(shí)現(xiàn)代碼

    今天小編就為大家分享一篇AUC計(jì)算方法與Python實(shí)現(xiàn)代碼,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Django如何使用redis作為緩存

    Django如何使用redis作為緩存

    這篇文章主要介紹了Django如何使用redis作為緩存,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 使用jupyter notebook直接打開.md格式的文件

    使用jupyter notebook直接打開.md格式的文件

    這篇文章主要介紹了使用jupyter notebook直接打開.md格式的文件,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python使用pymeter操作JMeter的教程詳解

    Python使用pymeter操作JMeter的教程詳解

    pymeter?是一個(gè)?Python?庫,它可以以編程方式創(chuàng)建和運(yùn)行?JMeter?測試計(jì)劃,下面就跟隨小編一起來看看Python如何使用pymeter操作JMeter的吧
    2024-01-01

最新評論

资溪县| 浠水县| 普兰县| 洪江市| 吉安县| 高台县| 天长市| 千阳县| 营山县| 宜川县| 灵宝市| 英超| 无棣县| 九龙城区| 马尔康县| 叶城县| 怀远县| 大理市| 宝山区| 靖西县| 石泉县| 星座| 徐水县| 嘉善县| 新化县| 揭阳市| 长寿区| 玉林市| 商城县| 南阳市| 吉水县| 营口市| 通化县| 隆林| 军事| 安西县| 安塞县| 东兴市| 凭祥市| 东乡县| 城步|