顧名思義,filter
過濾列表中的元素,并且返回一個由所有符合要求的元素所構(gòu)成的列表,符合要求
即函數(shù)映射到該元素時返回值為True. 這里是一個簡短的例子:
number_list = range(-5, 5)
less_than_zero = filter(lambda x: x < 0, number_list)
print(list(less_than_zero))
# 譯者注:上面print時,加了list轉(zhuǎn)換,是為了python2/3的兼容性
# 在python2中filter直接返回列表,但在python3中返回迭代器
# 因此為了兼容python3, 需要list轉(zhuǎn)換一下
# Output: [-5, -4, -3, -2, -1]
這個filter
類似于一個for
循環(huán),但它是一個內(nèi)置函數(shù),并且更快。
注意:如果map
和filter
對你來說看起來并不優(yōu)雅的話,那么你可以看看另外一章:列表/字典/元組推導(dǎo)式。
譯者注:大部分情況下推導(dǎo)式的可讀性更好