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

Python filter()函数:用法和实例

发布时间:2023-05-21 14:24:56

Python内置的filter()函数是一个高阶函数,它将接受一个函数和一个可迭代的序列(如列表、元组或字符串)作为输入,并返回一个新的序列,其中包含满足指定函数要求的元素。

filter()函数的用法:

filter(func, seq)

其中,func是一个接收一个参数的函数,seq是一个序列(可迭代对象)。如果func函数对seq每个元素返回True,则该元素将包含在返回的列表中。

返回的结果是一个迭代器对象,因此必须使用list()函数将其转换为列表。

示例:

1. 过滤出所有大于10的数

def is_greater_than_10(n):

    return n > 10

numbers = [1, 2, 3, 10, 20, 30]

result = filter(is_greater_than_10, numbers)

print(list(result))

输出结果:[20, 30]

2. 过滤出所有偶数

def is_even(n):

    return n % 2 == 0

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

result = filter(is_even, numbers)

print(list(result))

输出结果:[2, 4, 6, 8, 10]

3. 过滤出所有以“a”开头的字符

def starts_with_a(s):

   return s[0] == 'a'

strings = ["apple", "banana", "avocado", "orange"]

result = filter(starts_with_a, strings)

print(list(result))

输出结果:['apple', 'avocado']

4. 过滤出所有长度大于5的字符串

def is_longer_than_5(s):

    return len(s) > 5

strings = ["python", "java", "c++", "javascript", "html"]

result = filter(is_longer_than_5, strings)

print(list(result))

输出结果:['python', 'javascript']

在以上的实例中,我们通过filter()函数过滤出了满足特定条件的元素或对象。在实际编程中,filter()函数可以应用于许多场景,如数据处理、筛选和过滤等等。