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