【Python】filter函數的應用

    Python中有很多內置函數,內置函數會使代碼變得更加精簡且高效。這篇博文主要介紹filter函數。

filter() 函數,filter英文含義爲過濾,在Python中用於過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表。

該函數有兩個參數,一個爲函數,一個爲序列,序列的每個元素作爲參數傳遞給函數進行判斷,然後返回。

函數形式:

filter(function, iterable)
function:判斷函數
iterable:可迭代對象

在使用該函數時,也遇到一些坑,注意:一定要明白含義,iterable是列表,如果輸入一個字符串,會產生什麼樣的效果呢?請看下面案例:

以下函數功能,是爲了過濾字符串marks中包含的符號

marks=list("~!!@#$¥%^……&*(())/[【]】{{}}<>_+−=<>.,‘“|\"::-——...\-")
result = list(filter(lambda x: x not in marks, '最喜歡的.地方'))
print (result)

結果:可以看到,把這句話的每個字都拆開了,但是,‘最喜歡的’‘.地方’是兩個詞,我們想一個詞一個詞輸出,應該怎麼做呢

['最', '喜', '歡', '的', '地', '方']
marks=list("~!!@#$¥%^……&*(())/[【]】{{}}<>_+−=<>.,‘“|\"::-——...\-")
result = list(filter(lambda x: x not in marks, ['最喜歡的','.地方']))
print (result)

結果:可以看出,函數是將‘.地方’當做一個整體,去判斷,因此,轉成list,符號應該單獨存放

['最喜歡的', '.地方']

如下:

marks=list("~!!@#$¥%^……&*(())/[【]】{{}}<>_+−=<>.,‘“|\"::-——...\-")
result = list(filter(lambda x: x not in marks, ['.','地方']))
print (result)

結果:

['地方']

這就達到了想要的效果了~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章