Python函数filter()使用方法详解与案例分析
Python中的filter()函数是一个内置函数,用于过滤序列中的元素,返回符合条件的元素组成的新序列。filter()函数的基本语法如下:
filter(function, iterable)
其中,function是一个函数,用于对序列中的每个元素进行判断,返回True或False;iterable是一个可迭代的序列,如列表、元组等。
filter()函数通过循环遍历序列中的每个元素,依次将元素传递给函数进行判断。如果函数返回True,则将元素放入新序列;如果函数返回False,则跳过该元素。
下面通过几个案例来详细讲解filter()函数的使用方法。
案例1:筛选出大于5的整数
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def is_greater_than_5(n):
if n > 5:
return True
else:
return False
result = filter(is_greater_than_5, nums)
print(list(result))
输出结果:
[6, 7, 8, 9, 10]
在这个案例中,我们定义了一个函数is_greater_than_5(),用于判断整数是否大于5。然后我们使用filter()函数调用这个函数,传入整数序列nums。最后,将filter()函数的返回值转换为列表并打印出来。
案例2:筛选出偶数
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def is_even(n):
if n % 2 == 0:
return True
else:
return False
result = filter(is_even, nums)
print(list(result))
输出结果:
[2, 4, 6, 8, 10]
在这个案例中,我们定义了一个函数is_even(),用于判断整数是否为偶数。然后我们使用filter()函数调用这个函数,传入整数序列nums。最后,将filter()函数的返回值转换为列表并打印出来。
案例3:筛选出长度大于5的字符串
words = ["apple", "banana", "grape", "watermelon", "pineapple"]
def is_longer_than_5(word):
if len(word) > 5:
return True
else:
return False
result = filter(is_longer_than_5, words)
print(list(result))
输出结果:
['banana', 'watermelon', 'pineapple']
在这个案例中,我们定义了一个函数is_longer_than_5(),用于判断字符串的长度是否大于5。然后我们使用filter()函数调用这个函数,传入字符串序列words。最后,将filter()函数的返回值转换为列表并打印出来。
总结:
filter()函数是一个非常有用的函数,可以通过自定义的函数对序列进行筛选,返回符合条件的元素集合。在实际场景中,我们可以根据自己的需求自定义函数,并使用filter()函数来处理序列,进行元素的筛选和过滤。
