``定义
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象。
如果要转换为列表,可以使用 list() 来转换。(Python 2可以直接转换为列表)
语法
以下是 filter() 方法的语法:
filter(function, iterable)
这里function可以是自定义的函数:
def is_odd(n):
return n % 2 == 1
tmplist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
newlist = list(tmplist)
print(newlist)
输出结果 :
[1, 3, 5, 7, 9]
也可以是一个lamda函数:
l = [x for x in range(10)]
print(list(filter(lambda x : x%2 == 0, l)))
输出结果:
[2,4,6,8]
注意:如果连续使用list()将会让结果为空,例如在Jupyter notebook中运行代码块切勿重复运行这一句:
l = [x for x in range(10)]
temp = filter(lambda x : x%2 == 0, l)
new_list = list(temp)
print(new_list)
new_list2 = list(temp)
print(new_list2)
输出结果:
[0, 2, 4, 6, 8]
[]