Python中的filter()函数:功能、用法和注意事项
发布时间:2023-05-28 20:47:48
Python中的filter()函数可以用来筛选一个序列中符合特定条件的元素,返回一个过滤后的新列表。filter()函数是一个高阶函数,接收两个参数, 个参数是一个函数,第二个参数是一个序列。
filter(function, iterable)
- function:过滤函数,函数返回True或False。函数接受一个参数,代表序列中的每一个元素。
- iterable:序列,可以是list、tuple等。
filter()函数的功能:
1. 过滤
2. 将过滤后的结果返回到一个新的列表中
filter()函数的返回值是一个迭代器,可以使用list()函数将其转化为列表。
filter()函数的用法:
以下是filter()函数的用法示例:
#定义一个列表
li = [1, 2, 3, 4, 5, 6, 7, 8, 9]
#定义一个过滤函数
def filter_fun(x):
return True if x % 2 == 0 else False
#使用filter()函数
new_li = filter(filter_fun, li)
print(list(new_li)) #输出 [2, 4, 6, 8]
以上代码中,filter_fun()函数用于筛选li列表中的偶数,然后将筛选结果存入一个新的列表中。list()函数用于将迭代器转换为列表。
除了使用普通函数,还可以使用lambda表达式来定义过滤函数,如下所示:
#定义一个列表 li = [1, 2, 3, 4, 5, 6, 7, 8, 9] #使用lambda表达式 new_li = filter(lambda x: x % 2 == 0, li) print(list(new_li)) #输出 [2, 4, 6, 8]
filter()函数的注意事项:
1. 返回一个新列表,不会修改原有列表。
2. 过滤函数需要返回True或False,否则会抛出TypeError异常。
3. 如果过滤函数没有输入参数,则filter()函数仅返回一个空迭代器。
4. filter()函数只能通过list()函数将其迭代器转换为列表。
总结:
filter()函数是Python中一个十分有用的高阶函数,可以通过自定义过滤函数来过滤序列中的元素,返回新的列表。在使用filter()函数时,需要注意过滤函数的定义与返回值,同时,注意list()函数的使用。
