python 内置函数

python filter()函数通过回调函数或者lamda表达式的方式过滤可迭代对象的每个元素。它不会改变原有可迭代对象。

语法

语法如下:
filter(function,iterable,...)

参数

  • function: 回调函数或lamda表达式。
  • iterable:要过滤的可迭代对象。

返回值

Python 2.x 返回迭代对象。
Python 3.x 返回迭代器,需要转换。

程序示例

介绍一些例子了解该函数的使用方法。

例1

python3.x 中回调函数过滤奇数的例子

#!/usr/bin/python
# coding=utf-8
# 过滤奇数
def filter_odd(x):
    return x%2==0

list = [1,2,3,4,5]
list2 = tuple(filter(filter_odd, list)) #格式化处理,如果放在python2.x中不需要格式化处理
print('原有list', list) 
print('迭代后的list', list2)  

程序运行结果:

原有list [1, 2, 3, 4, 5]
迭代后的list (2, 4)

例2 

python3.x中lamda表达式的例子

#!/usr/bin/python
# coding=utf-8
list = [1,2,3,4,5]
list2 = tuple(filter(lambda x: x%2==0, [1, 2, 3, 4, 5]) ) #lambda后格式化处理
print('原有list', list) 
print('迭代后的list', list2)

程序运行结果:

原有list [1, 2, 3, 4, 5]
迭代后的list (2, 4)