Python filter()接收或舍弃数据

  • Post category:Python

下面是Python filter()使用方法的完整攻略。

简介

Python中的filter()函数用于对序列进行过滤操作,可以根据指定的条件筛选出符合要求的元素或者舍弃不符合要求的元素,过滤后返回一个新的序列(可以是列表、元组或者集合)。

filter()函数接收两个参数,第一个参数是一个函数,用于筛选元素的条件判断,第二个参数是需要进行过滤操作的序列(可以是列表、元组或者集合)。

函数原型:

filter(function, iterable)

参数说明:

  • function:用于筛选元素的函数,接收一个参数,返回值是TrueFalse
  • iterable:需要进行过滤操作的序列。

用法示例

示例1:简单过滤

我们可以通过 filter() 函数来简单的过滤掉一个序列中的元素,例如过滤掉列表中的奇数。

def is_even(n):
    """判断一个数是否为偶数"""
    return n % 2 == 0

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
evens = list(filter(is_even, nums))  # 过滤掉序列中的奇数

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

在上面的示例中,我们定义了一个函数is_even(),用于判断一个数是否为偶数。然后调用filter()函数,将函数名传入其中,可以得到一个返回值符合要求的序列(在本例中是偶数)。

示例2:使用lambda表达式

我们还可以使用 lambda 表达式来定义过滤条件,这样可以减少代码量。

例如,我们仍然需要过滤列表中的偶数,但是这次我们可以使用 lambda 表达式来定义条件筛选函数。

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
evens = list(filter(lambda x: x % 2 == 0, nums))  # 过滤掉序列中的奇数

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

在上面的示例中,我们使用 lambda 表达式来定义了一个匿名函数,即判断一个数是否为偶数。这样可以减少代码量,让代码更加简洁。