python内置函数filter()
一、简介
众所周知,filter()函数作用于iterable可迭代对象中的每个元素,用于过滤iterable对象中不满足func的元素,书面化说法是:filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
二、详解
语法:filter(function, iterable)
参数:function是进行判断的条件,function必须返回一个bool变量,当function判断为True时,该元素进行保留,当function判断为False时,该元素不保留。iterable是克爹大的对象。
返回值:特别需要注意到一点是在Python2.7版本中filter()
返回列表,而在Python3.x版本中filter()
返回迭代器对象,我们可以使用内置函数list()
手动将filter迭代器对象转化为列表
三、代码
举个简单的例子,比如我们需要去除一个列表的所有奇数元素,而只保留偶数元素
number_list = [1, 53, 89, 60, 45, 20, 40]
new_list = filter(lambda x: x % 2 == 0, number_list)
print(new_list, list(new_list))
<filter object at 0x0000019FA1B79BE0> [60, 20, 40]