欢迎访问宙启技术站
智能推送

filter()函数使用教程:筛选序列中的值

发布时间:2023-06-21 04:31:42

filter()函数是Python中的一个内置函数,用于筛选出符合条件的元素,将其组成新的序列并返回。具体来说,filter()函数会接收两个参数:一个是函数,一个是序列。它会对序列中的每个元素都执行函数,其中函数会返回True或False,最终将返回True的元素提取出来组成一个新的序列。

filter()函数的使用非常灵活,可以利用它实现各种筛选需求,例如:

1. 筛选偶数

even_nums = list(filter(lambda x: x % 2 == 0, [1, 2, 3, 4, 5, 6]))
print(even_nums)  # [2, 4, 6]

上述代码中,我们使用lambda表达式定义了一个匿名函数,该函数判断x是否为偶数,如果是则返回True,否则返回False。然后使用filter()函数对给定的序列进行筛选,最终将符合条件的偶数提取出来并组成一个新的列表。

2. 筛选大于等于0的数

positive_nums = list(filter(lambda x: x >= 0, [-1, 2, -3, 4, -5, 6]))
print(positive_nums)  # [2, 4, 6]

上述代码中,我们使用lambda表达式定义了一个匿名函数,该函数判断x是否大于等于0,如果是则返回True,否则返回False。然后使用filter()函数对给定的序列进行筛选,最终将符合条件的数提取出来并组成一个新的列表。

3. 筛选名字中包含字符'a'的人名

names = ["Alice", "Bob", "Charlie", "David", "Eve"]
a_names = list(filter(lambda x: 'a' in x.lower(), names))
print(a_names)  # ['Alice', 'Charlie', 'David']

上述代码中,我们使用lambda表达式定义了一个匿名函数,该函数判断x的小写形式中是否包含字符'a',如果是则返回True,否则返回False。然后使用filter()函数对给定的人名列表进行筛选,最终将符合条件的人名提取出来并组成一个新的列表。

总之,filter()函数在实现筛选功能时非常方便,可以大大简化代码量。同时,它还具有延迟计算的特性,也就是说,它会在真正需要使用时才进行计算,因此可以在处理大量数据时提高效率。