filter()
函数是 Python 中用于过滤序列的内置函数,它接受两个参数:一个函数和一个可迭代对象。filter()
函数会将可迭代对象中的每个元素传递给函数进行判断,并返回一个迭代器,其中包含所有函数返回值为 True
的元素。
基本用法
# 过滤出列表中的所有偶数
def is_even(n):
return n % 2 == 0
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = filter(is_even, numbers)
print(list(even_numbers)) # 输出: [2, 4, 6]
使用匿名函数(lambda)
# 使用lambda函数过滤出列表中的所有偶数
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers)) # 输出: [2, 4, 6]
进阶技巧
filter()
函数可以与其他函数结合使用,例如 map()
和 reduce()
,实现更复杂的数据处理逻辑。
# 把列表里的数字都平方
numbers = [1, 2, 3, 4, 5]
squared = map(lambda x: x**2, numbers)
print(list(squared)) # 输出: [1, 4, 9, 16, 25]
注意事项
-
filter()
函数返回的是一个迭代器对象,如果要转换为列表,可以使用list()
函数进行转换。 -
filter()
函数中的函数必须返回True
或False
,用来决定是否保留这个元素。
希望这些信息对你有帮助!