`filter()` 函数在 Python 中用于过滤序列,即根据指定的条件从可迭代对象中筛选出满足条件的元素。其基本语法如下:
filter(function, iterable)
`function` 是一个返回布尔值的函数,用于判断每个元素是否应该被保留。
`iterable` 是一个可迭代对象,如列表、元组、集合或字符串。
`filter()` 函数会遍历 `iterable` 中的每个元素,并将它们作为参数传递给 `function`。如果 `function` 返回 `True`,则该元素会被保留;如果返回 `False`,则该元素会被过滤掉。最后,`filter()` 函数返回一个新的迭代器,其中包含所有满足条件的元素。
如果你想查看过滤后的结果,需要将迭代器转换为列表或其他序列类型,例如使用 `list()` 函数:
even_numbers = filter(lambda x: x % 2 == 0, [1, 2, 3, 4, 5, 6])
print(list(even_numbers)) 输出: [2, 4, 6]
在这个例子中,`lambda x: x % 2 == 0` 是一个匿名函数,用于判断一个数是否为偶数。`filter()` 函数应用这个函数到列表 `[1, 2, 3, 4, 5, 6]` 的每个元素上,并返回一个新的迭代器,其中包含所有的偶数。然后我们将迭代器转换为列表并打印出来。
需要注意的是,`filter()` 函数返回的是一个迭代器,如果你不立即将其转换为列表或其他序列类型,那么在迭代过程中无法再次使用它,因为它只能遍历一次。