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

Python中的filter()函数及其功能介绍

发布时间:2023-06-10 04:23:27

Python中的filter()函数是一种内置函数,它可以根据给定的函数对数据集进行过滤,并返回符合条件的结果。在Python中,它是一个高阶函数,可以接受一个可迭代的数据集和一个返回值为布尔型的函数。该函数的功能是对数据集进行过滤,只返回符合调节的元素。

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

filter(function, iterable)

其中,function是过滤函数,用于对iterable中的每个元素进行判断,返回True或False;iterable是可迭代的对象,可以是列表、元组等。filter()函数的返回值是一个filter类型的对象,也是一个可迭代的对象。

例1:对列表进行过滤,筛选所有的偶数

def is_even(num):
    if num%2 == 0:
        return True
    else:
        return False

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
result = filter(is_even, lst)
print(list(result))

执行结果:

[2, 4, 6, 8, 10]

例2:对元组进行过滤,返回元素大于0的元素

def greater_than_zero(num):
    if num > 0:
        return True
    else:
        return False

tup = (-2, -1, 0, 1, 2, 3, 4, 5, 6, 7)
result = filter(greater_than_zero, tup)
print(tuple(result))

执行结果:

(1, 2, 3, 4, 5, 6, 7)

例3:使用lambda函数进行过滤,筛选所有长度大于3的字符串

lst = ["hello", "world", "python", "is", "awesome"]
result = filter(lambda x: len(x)>3, lst)
print(list(result))

执行结果:

['hello', 'world', 'python', 'awesome']

在以上三个例子中,filter()函数都是使用一个函数或lambda函数对iterable进行过滤,只返回符合条件的元素。通过filter()函数,我们可以对数据集进行高效且灵活的筛选操作,方便地获得我们想要的结果。