Python 高阶函数map(),filter(),reduce()

时间:2022-06-01 20:31:29

map()函数,接收两个参数,一个是函数,一个是序列,map()把传入的函数依次作用于序列的每个元素,并把结果作为新的序列返回;

aa = [1, 2, 3, 4, 5]
print("map-result = ", list(map(lambda a: a * a, aa))) #map-result = [1, 4, 9, 16, 25]

filter()函数,接收两个参数,一个是函数,一个是序列,filter()把传入的函数依次作用于每个元素,根据返回值是True还是False决定是保留还是丢弃该元素,结果序列是所有返回值为True的子集;

aa = [1, 2, 3, 4, 5]
print("filter-result = ", list(filter(lambda a: a >=3, aa))) #filter-result = [3, 4, 5]

reduce()函数,把一个函数作用于一个序列上,这个函数必须接收两个参数,其中reduce()函数把结果继续和序列的下一个元素做累积计算,reduce()函数只返回值结果中,而非序列。在Python3中,reduce()函数移到了functools包中。

from functools import reduce aa= [1,2,3,4,5] print("reduce-result = ",reduce(lambda a, b: (a * b),aa)) #reduce-result = 120