📜  python中的过滤函数(1)

📅  最后修改于: 2023-12-03 14:46:41.806000             🧑  作者: Mango

Python中的过滤函数

Python中的过滤函数是列表处理中必不可少的一部分。它们允许您从一个列表中筛选出特定的元素,并将这些元素组成一个新的列表。

在Python中,有两个常用的过滤函数:filter()itertools.filterfalse()。接下来将对这两个函数进行介绍和演示。

filter()

filter()函数可以用于过滤一个序列中的元素。它接受一个函数对象和一个可迭代对象作为参数,并返回一个由所有满足该函数的元素组成的迭代器。

def is_even(n):
    return n % 2 == 0

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = filter(is_even, numbers)

print(list(even_numbers))  # [2, 4, 6, 8, 10]

在这个例子中,我们定义了一个名为is_even()的函数,它接受一个整数并返回一个布尔值表示该数字是否是偶数。我们然后使用该函数和一个包含数字的列表调用filter()函数。最后,我们将返回的迭代器转换为一个列表并打印输出。输出结果为[2, 4, 6, 8, 10],即过滤出的所有偶数。

itertools.filterfalse()

itertools.filterfalse()函数与filter()类似,但是它返回所有不满足函数指定条件的元素。

import itertools

def is_odd(n):
    return n % 2 != 0

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
odd_numbers = itertools.filterfalse(is_odd, numbers)

print(list(odd_numbers))  # [2, 4, 6, 8, 10]

在这个例子中,我们定义了一个名为is_odd()的函数,它接受一个整数并返回一个布尔值表示该数字是否是奇数。我们然后使用itertools.filterfalse()函数来过滤出所有不是奇数的元素。最后,我们将返回的迭代器转换为一个列表并打印输出。输出结果为[2, 4, 6, 8, 10],即过滤出的所有偶数。

总结

过滤函数是一个非常有用的Python列表处理工具,它们允许您对列表中的元素进行筛选,并可以通过对筛选条件进行修改来进行自定义过滤。在编写Python程序时,遇到需要对序列进行过滤的情况时,可以用filter()函数和itertools.filterfalse()函数来实现。