Python filter()函数:用法和实例
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()函数可以应用于许多场景,如数据处理、筛选和过滤等等。
