python 內建函式filter

2021-07-31 07:01:49 字數 1356 閱讀 9461

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

print filter(is_odd,[1,4,5,7,9,12,17])

還可以刪除空字串

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刪除序列是只要邊(開頭或結尾)上的字元在刪除序列內,就刪除掉。

例如 :

a='123abc'

a.strip('c')

結果:123ab

當rm為空時,預設刪除空白符(包括』\n』, 『\r』, 『\t』, 』 『),如下:

a = '     123'

a.strip()

結果: 『123』

a='\t

\twww

\r\n'

a.strip()

結果:』www』

請利用filter()過濾出1~100中平方根是整數的數,即結果應該是:

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

import math

defis_sqr

(x):

return math.sqrt(x) % 1 == 0

print filter(is_sqr, range(1, 101))

或者

import math

defis_sqr

(x):

r = int(math.sqrt(x))

return r*r==x

print filter(is_sqr, range(1, 101))

Python 過濾元素的迭代函式filter

在python內建函式中,有乙個和map 函式用法類似 卻可以用來過濾元素的迭代函式,這個函式就是filter 它會把列表中有序資料的每乙個元素逐一提供給布林型別的形參函式進行處理,再根據處理結果的真假 true或false 來決定這個元素是否形成新的列表元素。1 示例 import sympy a...

python重寫內建函式 python 內建函式

說明 zip 函式用於將可迭代的物件作為引數,將物件中對應的元素打包成乙個個元組,然後返回由這些元組組成的列表。如果各個迭代器的元素個數不一致,則返回列表長度與最短的物件相同,利用 號操作符,可以將元組解壓為列表。語法 zip iterable1,iterable2,引數 iterable 乙個或多...

python內建函式簡稱 Python內建函式詳解

此文參考python文件,然後結合自己的理解,寫下來,一方面方便自己,讓自己好好學習,順便回憶回憶 另一方面,讓喜歡的盆友也參考一下。經查詢,3.6版本總共有68個內建函式,主要分類如下 數 算 7個 型別轉換 24個 序列操作 8個 物件操作 9個 反射操作 8個 變數操作 2個 互動操作 2個 ...