#Python 的内置函数 filter
说明:过滤数据。
#函数说明
def filter(fn, iterable):
'''
过滤数据
:param fn: 回调函数,返回 True 时元素保留,返回 False 时去除元素
:param iterable: 要过滤的可迭代对象
:return: 过滤后的可迭代对象
'''
说明
过滤可迭代对象中的元素,得到新的可迭代对象。
参数
fn
- 用于过滤的回调函数- 可迭代对象的元素会作为参数传给此函数,此函数返回
True
时该元素被保留,返回False
时,该元素被滤除 - 如果此参数为
None
,则直接判断原本的数据,也就是滤除0
,None
,False
等 假值
- 可迭代对象的元素会作为参数传给此函数,此函数返回
iterable
- 要过滤的可迭代对象
返回值
由过滤后保留的元素组成的可迭代对象。
#示例
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(filter(lambda x : x%2 == 0, numbers)) # 元素除以 2 余数为 0 时保留,否则滤除,结果是迭代器
print(list(filter(lambda x : x%2 == 0, numbers))) # 转换为 list
print(list(filter(None, numbers))) # fn 为 None,直接判断原数据