2018-10-23
閱讀量:
1112
Python的filter函數(shù)用法
Python內(nèi)建的filter()
函數(shù)用于過濾序列。
filter()
接收一個(gè)函數(shù)和一個(gè)序列,把傳入的函數(shù)依次作用于每個(gè)元素,然后根據(jù)返回值是True
還是False
決定保留還是丟棄該元素。
例如,在一個(gè)list中,刪掉偶數(shù),只保留奇數(shù),可以這么寫:
def is_onumb(n):
return n % 2 == 1
list(filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8]))
# 結(jié)果: [1, 3, 5, 7]
把一個(gè)序列中的空字符串刪掉,可以這么寫:
def not_empty(s):
return s and s.strip()
list(filter(not_empty, ['A', '', 'B', None, 'C', ' ']))
# 結(jié)果: ['A', 'B', 'C']
可見用filter()
這個(gè)高階函數(shù),關(guān)鍵在于正確實(shí)現(xiàn)一個(gè)“篩選”函數(shù)。
注意到filter()
函數(shù)返回的是一個(gè)Iterator
,也就是一個(gè)惰性序列,所以要強(qiáng)迫filter()
完成計(jì)算結(jié)果,需要用list()
函數(shù)獲得所有結(jié)果并返回list。






評論(0)


暫無數(shù)據(jù)
CDA考試動(dòng)態(tài)
CDA報(bào)考指南
推薦帖子
0條評論
0條評論
0條評論
0條評論