2024年3月20日发(作者:)
filter函数介绍
在Python中,filter()函数是一个典型的内置函数,它是一个谓词函数,通常在一个
序列中过滤出符合指定条件的元素,并将它们返回到一个新生成的序列中。
filter(function, iterable)
其中,function代表过滤函数,而iterable代表数据序列。
在这个函数中,function是指的一个bool函数,主要是用来判断每一个元素是否符
合条件。如果为True,则会过滤出此元素,否则舍弃。
在Python3中,filter()返回的是一个filter对象,这个对象是一个生成器,我们可以
通过list()将其转换为一个列表。
使用Filter函数的示例:
# 定义一个函数,判断一个数是否为偶数
def is_even(n):
return n % 2 == 0
# 定义数据列表
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 输出结果
print(list(result))
输出结果:
[2, 4, 6, 8, 10]
在上面的示例中,我们定义了一个is_even()函数,用来判断一个数是否是偶数。然
后定义了一个数据列表data,包含了数字1到10。我们利用filter()函数,将is_even()
函数应用于data列表中的每个元素,并返回符合条件的元素,将得到一个列表[2, 4, 6, 8,
10]。
除此之外,我们也可以使用lambda表达式来实现相同的过滤效果,如下所示:
# 使用lambda表达式过滤奇数
result = filter(lambda x: x % 2 != 0, data)
在这个示例中,我们使用lambda表达式来定义一个过滤条件,将不是偶数的元素保
留下来。
filter()函数不仅可以用于过滤数据,还可以用于过滤空字符串,如下所示:
# 定义字符串列表
words = ['hello', '', 'world', 'test', '', 'python']
# 使用filter()函数过滤空字符串
result = filter(None, words)
在这个示例中,我们使用filter()函数过滤了一个包含空字符串的列表,使用了None
作为过滤函数,这时,filter()函数将会自动过滤掉所有空字符串。
总结:
使用filter()函数可以对一个序列中的数据进行过滤,并返回符合条件的元素列表。它
可以用谓词函数进行过滤,也可以用lambda表达式进行过滤。filter()函数的返回值是一
个生成器,我们可以通过list()将其转换为一个列表,从而进行操作。filter()函数的应用范
围非常广泛,我们可以灵活地运用它来满足不同需求。


发布评论