简述
filter()是python的内置函数,用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素的新列表。
该函数接收两个参数,第一个为函数,第二个为序列(列表,元组,集合等都可以),序列的每个元素作为参数传递给函数进行判断,然后返回True或False,最终将返回True的元素放到新列表中
注意:python2.7返回列表,python3.x返回的是迭代器对象
语法
filter(function,iterable)
参数
- function–判断函数
- iterable–可迭代对象
返回值
返回一个可迭代对象
示例
def test(n):
return n%2==0
#这里返回的是迭代器对象
result = filter(test,[1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(result)
#转为列表
result_list = list(result)
print(result_list)
结果
<filter object at 0x0000025120CC8190>
[2, 4, 6, 8, 10]
示例2
可以删除序列中的空字符串以及空值None
def test(n):
return n != '' and n != None
#这里返回的是迭代器对象
result = filter(test,{'a', 'b', 'ab', '',None})
print(result)
#转为列表
result_list = list(result)
print(result_list)
结果
<filter object at 0x00000195688786D0>
['a', 'ab', 'b']