下面是Python filter()函数的详细讲解。
一、简介
Python中filter()
函数是内置的高阶函数,用于筛选序列中符合条件的元素,返回一个迭代器对象。
filter()
函数的语法格式如下:
filter(function, iterable)
function
:表示一个函数,用于判断iterable
中的元素是否符合条件,需要返回一个Boolean值。iterable
:表示一个可迭代的序列(如字符串、列表、元组等)。
filter()
函数将根据function
函数返回结果为True
或False
的结果,过滤出iterable
中符合条件的元素。
二、使用方法
下面我们通过两个示例来详细说明Python filter()函数的使用方法。
1. 过滤出偶数
我们定义一个列表,用于存储0~9的数字,然后通过filter()
函数来过滤出这个列表中的偶数。
# 定义一个列表
lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 定义函数,判断一个数字是否是偶数
def is_even(num):
return num % 2 == 0
# 使用filter()函数过滤出偶数
result = filter(is_even, lst)
# 打印过滤出的偶数
print(list(result)) # [0, 2, 4, 6, 8]
首先我们定义了一个列表lst
,里面包含了0~9十个数字。
然后我们定义了一个函数is_even()
。这个函数用于判断一个数字是否是偶数,返回的结果为True
或False
。
最后我们使用filter()
函数来过滤出偶数,返回结果为一个迭代器对象。为了将结果转变为列表,我们使用list()
函数对结果进行转换。
2. 过滤出长度大于等于5的字符串
我们定义一个字符串列表,用于存储几个字符串,然后通过filter()
函数来过滤出这个列表中长度大于等于5的字符串。
# 定义一个字符串列表
lst = ['hello', 'world', 'python', 'filter', 'map', 'reduce']
# 定义函数,判断一个字符串的长度是否大于等于5
def is_long_word(word):
return len(word) >= 5
# 使用filter()函数过滤出长度大于等于5的字符串
result = filter(is_long_word, lst)
# 打印过滤出的字符串
print(list(result)) # ['hello', 'world', 'python', 'filter', 'reduce']
首先我们定义了一个字符串列表lst
,里面包含了6个字符串。
然后我们定义了一个函数is_long_word()
。这个函数用于判断一个字符串是否长度大于等于5,返回的结果为True
或False
。
最后我们使用filter()
函数来过滤出长度大于等于5的字符串,返回结果同样为一个迭代器对象。为了将结果转变为列表,我们使用list()
函数对结果进行转换。
三、小结
以上是Python filter()函数的详细讲解。使用filter()可以很方便地过滤出一个序列中符合条件的元素,它是Python中非常实用的高阶函数之一。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python filter()接收或舍弃数据 - Python技术站