英文文檔: filter(function, iterable) Construct an iterator from those elements of iterable for which function returns true. iterable may be either a seque ...
英文文檔:
filter
(function, iterable)
Construct an iterator from those elements of iterable for which function returns true. iterable may be either a sequence, a container which supports iteration, or an iterator. If function is None
, the identity function is assumed, that is, all elements of iterable that are false are removed.
Note that filter(function, iterable)
is equivalent to the generator expression (item for item in iterable if function(item))
if function is not None
and (item for item in iterable if item)
if function is None
.
See itertools.filterfalse()
for the complementary function that returns elements of iterable for which function returns false.
說明:
1. filter函數用於過濾序列。過濾的方式則是採用傳入的函數,去迴圈序列的元素調用,如果函數計算的結果為True則保留元素,否則將捨棄該元素。
>>> a = list(range(1,10)) #定義序列 >>> a [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> def if_odd(x): #定義奇數判斷函數 return x%2==1 >>> list(filter(if_odd,a)) #篩選序列中的奇數 [1, 3, 5, 7, 9]
2. 當function參數傳入None時,序列中的元素值如果為False,也會自動捨棄。
>>> c = ['',False,'I',{}] #定義序列 >>> c ['', False, 'I', {}] >>> list(filter(None,c)) #篩選函數為None,自動捨棄序列中的False值,空字元串、False值、空序列都是False值,所以丟棄 ['I']