内置函数reduce

发布时间 2023-07-09 20:27:17作者: Allen_Hao
 1 '''
 2 filter()函数是Python内置的一个高阶函数,它用于过滤可迭代对象中的元素,只保留满足特定条件的元素。filter()函数接受两个参数:一个函数和一个可迭代对象。
 3 语法:
 4     filter(function, iterable)
 5 其中:
 6     1. function是一个函数,它接受一个参数,并返回一个布尔值,表示对该参数是否保留。
 7     2. iterable是一个可迭代对象,例如列表、元组等。
 8 
 9 
10 filter()函数会对可迭代对象中的每个元素调用function函数,如果function返回True,则保留该元素,否则将其过滤掉。
11 最终,filter()函数返回一个迭代器对象,其中包含了满足条件的元素。
12 
13 最佳实践:
14     1. 使用filter()函数可以简洁地对可迭代对象中的元素进行筛选操作,避免了使用循环的繁琐和重复代码。
15     2. 当需要根据特定条件来过滤可迭代对象中的元素时,使用filter()函数可以提高代码的可读性和简洁性。
16 
17 在Python 3中,filter()函数返回的是一个迭代器对象而不是列表。如果需要得到一个列表,可以使用list()函数将其转换为列表。
18 '''
19 
20 # 1. 使用filter()函数过滤出列表中的偶数:
21 numbers = [1, 2, 3, 4, 5]
22 # 函数的返回值必须是布尔,True是需要的,False是抛弃的
23 even_numbers = filter(lambda x: x % 2 == 0, numbers)
24 print(list(even_numbers))  # 输出:[2, 4]
25 
26 # 2. 使用filter()函数过滤出字符串列表中长度大于等于5的字符串
27 words = ["apple", "banana", "cherry", "durian", "elderberry"]
28 long_words = filter(lambda x: len(x) >= 5, words)
29 # 需要注意,在Python 3中,filter()函数返回的是一个迭代器对象而不是列表,如果需要得到一个列表,可以使用list()函数将其转换为列表。
30 print(list(long_words))  # 输出:['banana', 'cherry', 'durian', 'elderberry']