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

Python中的filter()函数使用方法及示例

发布时间:2023-06-22 22:28:29

Python中的filter()函数是一种非常常用的操作函数,它可以对序列中的元素进行筛选,只保留符合条件的元素。本文将介绍filter()函数的使用方法及示例。

语法格式

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

filter(function, iterable)

其中,

参数function:用来筛选的函数。

参数iterable:需要进行筛选的序列。

函数function的原型如下:

function(item)

其中,

参数item:需要筛选的元素。

函数返回值:True或False,如果是True就保留该元素,如果是False就抛弃该元素。

示例

下面我们来看一下filter()函数的几个示例。

1. 过滤列表中的偶数,保留奇数

代码如下:

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

def odd_numb(x):

    if x % 2 == 0:

        return False

    else:

        return True

odd_list = list(filter(odd_numb, num_list))

print(odd_list)

输出结果:

[1, 3, 5, 7, 9]

解释:

odd_numb函数是一个判断是否为奇数的函数,如果是返回True,否则返回False。filter()函数根据odd_numb函数的返回值筛选序列,只保留返回值为True的元素。

2. 过滤列表中的空字符串或None

代码如下:

str_list = ["hello", "", "world", None, "Python"]

filter_list = list(filter(None, str_list))

print(filter_list)

输出结果:

['hello', 'world', 'Python']

解释:

为了方便,使用了内置函数None作为过滤函数,它会过滤掉序列中的空字符串或None元素。

3. 使用lambda表达式过滤列表

代码如下:

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

odd_list = list(filter(lambda x:x%2!=0, num_list))

print(odd_list)

输出结果:

[1, 3, 5, 7, 9]

解释:

使用lambda表达式定义了奇数的判断规则,可以直接传递给filter()函数使用。

总结

通过上述示例,我们可以看到filter()函数非常方便实用,可以根据自定义的判断规则对序列进行筛选。使用filter()函数可以帮助我们简化程序代码,增强程序的可读性和可维护性。值得注意的是,filter()函数生成的是一个生成器对象,需要使用list()函数把它转换成列表才能输出结果。