Python filter()函数的用法(附带实例)
Python 内建的 filter() 函数用于过滤序列。
与 map() 函数类似,filter() 函数可接收一个函数和一个序列。不同之处在于,filter () 函数先把传入的函数依次作用于每个元素,再根据返回值是 True 还是 False 决定保留或丢弃某个元素。
比如,删除列表中的偶数,保留列表中的奇数,可以通过如下程序实现:
再例如,使用 filter() 删掉一个序列中的所有空字符串,代码如下:
与 map() 函数类似,filter() 函数可接收一个函数和一个序列。不同之处在于,filter () 函数先把传入的函数依次作用于每个元素,再根据返回值是 True 还是 False 决定保留或丢弃某个元素。
比如,删除列表中的偶数,保留列表中的奇数,可以通过如下程序实现:
numbers = range(1,11) def f(x): return x%2 == 1 odds = filter(f,numbers) print(list(odds))运行结果为:
[1, 3, 5, 7, 9]
使用 filter() 函数过滤可以成功得到 1~10 的所有奇数。再例如,使用 filter() 删掉一个序列中的所有空字符串,代码如下:
old_strs = ['messi',"",'xavi',"",None] print(old_strs) def f(x): return x and x.strip() new_strs = filter(f,old_strs) print(list(new_strs))运行结果为:
['messi', '', 'xavi', '', None]
['messi', 'xavi']