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

Python函数filter()使用方法详解与案例分析

发布时间:2023-07-06 04:49:20

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()函数来处理序列,进行元素的筛选和过滤。