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)
迭代后的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)
迭代后的list (2, 4)