首页 > 编程笔记 > Python笔记 阅读:21

Python filter()函数的用法(附带实例)

Python 内建的 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']

通过 filter() 函数过滤,成功清除了序列中的空字符串。

相关文章