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

Python 中的 filter() 函数用法

发布时间:2023-06-26 06:45:08

Python中的filter()函数是一种内置函数,它用于从给定的序列中过滤出符合条件的元素,返回一个新的序列。

filter()函数的语法格式如下:

filter(function, sequence)

其中,function是一个函数,用来判断sequence中的元素是否符合条件;sequence是一个序列,可以是列表、元组、字典等。

filter()函数的工作原理是,将sequence中的每个元素作为函数的参数,如果函数返回值为True,则将该元素添加到结果序列中。

例如,假设有一个列表a,需要筛选出其中大于等于5的元素,可以使用以下代码:

a = [1, 3, 5, 7, 9, 2, 4, 6, 8]

result = list(filter(lambda x: x >= 5, a))

print(result)

输出结果为:[5, 7, 9, 6, 8]。

在上面的代码中,lambda函数用来判断序列中的元素是否大于等于5,如果是则返回True,否则返回False。filter()函数将序列中的每个元素作为lambda函数的参数,过滤出满足条件的元素,最终将这些元素组成一个新的序列并返回。

filter()函数还可以接收多个序列作为参数,当有多个序列时,函数会依次将序列中的元素作为函数的参数传入,如果所有序列的元素都符合条件,则将这些元素组合成一个新的序列并返回。

例如,假设有两个列表a和b,需要筛选出其中a列表元素大于2且b列表元素小于8的元素,可以使用以下代码:

a = [1, 3, 5, 7, 9, 2, 4, 6, 8]

b = [2, 4, 6, 8, 10, 12, 14, 16, 18]

result = list(filter(lambda x, y: x > 2 and y < 8, a, b))

print(result)

输出结果为:[5, 6]

在上面的代码中,lambda函数接收两个参数,分别是a和b列表中对应的元素,判断这两个元素是否都符合条件,如果都符合,则返回True,否则返回False。filter()函数将a和b列表中对应的元素传入lambda函数判断,筛选出符合条件的元素,最终将这些元素组合成一个新的序列并返回。

综上所述,filter()函数是一种非常实用的函数,可以在很多场景下用来对序列进行筛选,过滤出符合条件的元素。熟练掌握filter()函数的用法,可以提高程序的效率,减少冗余代码。