當前位置:首頁 » 編程語言 » pythonfilter用法

pythonfilter用法

發布時間: 2025-01-23 17:04:26

1. python中的filter函數怎麼用

  1. python filter內建函數

filter函數是python內建函數,可以操作任何可迭代類型,如list,tuple,string.

filter需要帶上一個函數function和一個可迭代序列作為參數。filter()將調用該function作用於每一個可迭代序列的元素,並返回一個由該function驗證後返回值為true的元素組成新的可迭代序列,新序列的類型保持與filter參數序列的類型一致

2.filter與數字

下面用這個例子來說明:

#建個數字列表
numbers=[1,5,9,8,4,6,3,7]
#定義一個過濾標准,取小於5的數
deflessThanFive(element):
returnelement<5
printfilter(lessThanFive,numbers)
輸出結果是列表:[1,4,3]

解說:此處的過濾函數lessThanFive必需帶入一個參數(filter()會調用lessThanFive,參數是列表nembers中的每一個元素,一次一個)。filter()返回所有值都是小於5的列表

3.filter與字元串

下面用如下例子說明:

#定義元組類型
names=('Jack','Jill,'Steve','')
#篩選出名字
new_names=filter(None,names)
printnew_names
輸出結果是元組:
('Jack','Jill,'Steve')

在元組names最後一個名字是空字元串,而filter的第一個參數是None,這說明需要使用identity函數(該函數是簡單的返回該元素的)

因為python對空字元串,0和None作為False,所以上面的filter的語句就是移除空元素。

4.filter和函數

目的:找出以J開頭的名字

defstartsWithJ(element):
ifelement:
returnelement[0]=='J'
returnFalse
j_names=filter(startsWithJ,names)
printj_names
輸出結果是元組:('Jack','Jill')

注意到了嗎,上面的2個結果都是tuple而不是list,再一次說明fliter的返回值類型與參數序列的類型保持一致

2. python中的filter函數怎麼用

filter()函數是 Python 內置的另一個有用的高階函數,filter()函數接收一個函數 f 和一個list,這個函數 f 的作用是對每個元素進行判斷,返回 True或 False,filter()根據判斷結果自動過濾掉不符合條件的元素,返回由符合條件元素組成的新list。
例如,要從一個list [1, 4, 6, 7, 9, 12, 17]中刪除偶數,保留奇數,首先,要編寫一個判斷奇數的函數:
def is_odd(x):
return x % 2 == 1

然後,利用filter()過濾掉偶數:
>>>filter(is_odd, [1, 4, 6, 7, 9, 12, 17])

結果:
[1, 7, 9, 17]

利用filter(),可以完成很多有用的功能,例如,刪除 None 或者空字元串:
def is_not_empty(s):
return s and len(s.strip()) > 0
>>>filter(is_not_empty, ['test', None, '', 'str', ' ', 'END'])

結果:
['test', 'str', 'END']

注意: s.strip(rm) 刪除 s 字元串中開頭、結尾處的 rm 序列的字元。
當rm為空時,默認刪除空白符(包括'\n', '\r', '\t', ' '),如下:
>>> a = ' 123'
>>> a.strip()
'123'
>>> a = '\t\t123\r\n'
>>> a.strip()
'123'
練習:
請利用filter()過濾出1~100中平方根是整數的數,即結果應該是:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
方法:
import math
def is_sqr(x):
return math.sqrt(x) % 1 == 0
print filter(is_sqr, range(1, 101))

結果:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

3. python中的filter函數是什麼

在Python中,filter()函數是一個非常有用的內置函數,旨在篩選出可迭代對象中滿足特定條件的元素,返回一個迭代器。此函數簡化了代碼,提升了程序可讀性。
基本用法:filter()函數接收兩個參數,即用於判斷的函數和可迭代對象。此函數將迭代對象中的每個元素依次傳給判斷函數進行評估,返回滿足條件的元素組成的迭代器。舉例,利用filter()篩選列表中的偶數。
Lambda表達式簡化:有時只需簡單函數進行篩選,使用Lambda表達式可省略單獨定義函數步驟,使代碼更簡潔。以上述示例為例,可以簡化為使用Lambda。
返回值是迭代器:filter()函數的輸出是迭代器,而非列表。這意味著進行一次迭代後,迭代器中的元素將被耗盡。若需多次訪問結果,應將其轉換為列表或使用循環逐個訪問。
過濾多個可迭代對象:filter()可同時過濾多個可迭代對象,傳入函數應接受相應數量的參數。此函數將多對象元素按位置一一傳入進行判斷。
使用None作為判斷函數:有時需過濾掉特定"假值",如空字元串、零等。將filter()函數參數設置為None,該函數自動過濾掉判斷為假的元素。
綜合示例:篩選年齡大於等於18歲的成年人。通過filter()函數從字典列表中找出符合條件的成年人。
總結:本文全面介紹了filter()函數在Python中的應用,覆蓋從基礎用法到進階技巧,如Lambda表達式、多對象過濾及使用None作為判斷函數等。filter()函數是Python中強大且靈活的工具,可簡化代碼,提高開發效率。掌握filter()函數各種用法,能高效處理可迭代對象,實現業務邏輯。本文旨在幫助深入理解並應用filter()函數。

熱點內容
c語言相反數 發布:2025-01-23 22:28:55 瀏覽:187
壓縮網課 發布:2025-01-23 22:13:19 瀏覽:596
網站收錄源碼 發布:2025-01-23 22:04:42 瀏覽:692
用c語言製作 發布:2025-01-23 21:49:09 瀏覽:951
怎麼刪除開機密碼電腦 發布:2025-01-23 21:47:24 瀏覽:890
php配置偽靜態 發布:2025-01-23 21:31:46 瀏覽:764
mud源碼下載 發布:2025-01-23 21:19:46 瀏覽:136
反恐精英15游戲伺服器ip 發布:2025-01-23 21:13:38 瀏覽:853
起床的戰爭玩什麼伺服器 發布:2025-01-23 21:03:06 瀏覽:145
企業級安卓手機防毒軟體哪個好 發布:2025-01-23 20:59:28 瀏覽:243