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

内置函数filter的用法和示例场景

发布时间:2023-06-30 16:15:15

内置函数filter()是Python中常用的内置函数之一,它用于过滤序列(可迭代对象),根据给定的条件筛选出符合条件的元素,并返回一个新的可迭代对象。

filter()函数的语法如下:

filter(function, sequence)

其中,function是一个函数,用于判断序列中的每个元素是否满足条件,sequence是一个序列,可以是列表、元组、字符串等可迭代对象。

示例场景:

1. 过滤出所有的奇数:

假设有一个列表numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我们想要将其中的奇数筛选出来。这时,可以定义一个函数is_odd()来判断一个数是否为奇数:

def is_odd(n):

    return n % 2 == 1

然后,使用filter()函数来筛选出所有的奇数:

odd_numbers = list(filter(is_odd, numbers))

print(odd_numbers)

# 输出:[1, 3, 5, 7, 9]

这个例子中,我们定义了一个函数is_odd(),该函数用于判断一个数是否为奇数,使用filter()函数过滤出所有满足条件的奇数,并将结果存储在一个列表中。

2. 过滤出所有的负数:

假设有一个列表numbers = [1, -2, 3, -4, 5, -6, 7, -8, 9, -10],我们想要将其中的负数筛选出来。这时,可以定义一个函数is_negative()来判断一个数是否为负数:

def is_negative(n):

    return n < 0

然后,使用filter()函数来筛选出所有的负数:

negative_numbers = list(filter(is_negative, numbers))

print(negative_numbers)

# 输出:[-2, -4, -6, -8, -10]

这个例子中,我们定义了一个函数is_negative(),该函数用于判断一个数是否为负数,使用filter()函数过滤出所有满足条件的负数,并将结果存储在一个列表中。

3. 根据条件过滤出特定的字符串:

假设有一个字符串列表fruits = ['apple', 'banana', 'cherry', 'durian', 'grape'],我们想要将其中长度大于5的字符串筛选出来。这时,可以定义一个函数is_long()来判断一个字符串的长度是否大于5:

def is_long(string):

    return len(string) > 5

然后,使用filter()函数来筛选出所有满足条件的字符串:

long_strings = list(filter(is_long, fruits))

print(long_strings)

# 输出:['banana', 'cherry']

这个例子中,我们定义了一个函数is_long(),该函数用于判断一个字符串的长度是否大于5,使用filter()函数过滤出所有满足条件的字符串,并将结果存储在一个列表中。

总结:

filter()函数是Python中非常有用的内置函数之一。它可以根据给定的条件筛选出序列中满足条件的元素,并返回一个新的可迭代对象。使用filter()函数可以简化对序列的筛选操作,提高代码的可读性和简洁性。无论是筛选出特定类型的元素,还是根据特定条件来筛选出元素,filter()函数都是一个非常实用的工具。