filter用法:
filter()用法和map()函數(shù)相同逆皮,可以接收函數(shù)和序列胁镐,不同的是filter可以主動(dòng)進(jìn)行過(guò)濾和挑選只估。
舉例:在一個(gè)list中,刪掉偶數(shù)掺喻,只保留奇數(shù)
def is_odd(n):
...? ? return n % 2 == 1
...
>>> list(filter(is_odd,[1,2,4,5,6,9,10,15]))
[1, 5, 9, 15]
把一個(gè)序列中的空字符串刪掉:
def not_empty(s):
...? ? return s and s.strip()
...
>>> list(filter(not_empty,['A','','B',None,'C',' ']))
['A', 'B', 'C']
注意:strip()函數(shù)為去掉函數(shù)
注意到filter()函數(shù)返回的是一個(gè)Iterator芭届,也就是一個(gè)惰性序列储矩,所以要強(qiáng)迫f(wàn)ilter()完成計(jì)算結(jié)果,需要用list()函數(shù)獲得所有結(jié)果并返回list褂乍。
用filter求素?cái)?shù)