Python中的filter()函数使用方法及示例
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()函数把它转换成列表才能输出结果。
