1. 程式人生 > >python裡的高階函式(類)之filter

python裡的高階函式(類)之filter

filter:過濾
python2中:內建函式
python3中:filter---類

1. filter(function or None, iterable)
        過濾掉iterable中為False的所有元素(留下來的為True)
        返回一個filter物件
        第一個引數:可以是函式,也可以是None
        第二個引數:如果第一個引數是None值,則返回iterable中為真的值
                   如果第一個引數為函式,則返回iterable的元素作為引數的傳遞給函式的,為真的值
        要求:函式是一個布林函式(返回值為True或False---零或非零)
        False:[] '' None () {} 0 0.0 
        True:1 非空 非零

例:

# filter
# a=filter(None,[0,1,2,3])
# print(list(a))

def fun(s):
    if s=='a':
        return False
    else:
        return True
#a=filter(fun,[0,1,2,3,4,5,6,7,8,9])
a=filter(fun,'abcabbabdabf')
print(list(a))
======================================================
a=filter(lambda x:not x%2,[0,1,2,3,4,5,6,7,8,9])
print(list(a))