Python3中,map()函数、filter()函数、reduce()函数的比较
1.map(function,iterable):function为函数,或者lambda表达式,iterable是可迭代的序列,即对iterable中的每个item执行一遍function或者lambda表达式,返回一个map类型;
ls = [1,2,3,4,5] result = map(lambda x : x**2 ,ls) print(type(result)) print(result) print(list(result)) #输出 <class 'map'> #输出 <map object at 0x000001DFFA442470> #输出 [1,4,9,16,25]
2.filter(function,iterable):‘筛选函数’,filter()把传人的函数依次作用于序列的每个元素,然后根据返回值是True还是false决定保留还是丢弃该元素,返回符合条件的序列
def func(x): return x % 2 == 0 req = filter(func,range(10)) print(req) #输出 [2,4,6,8]
3.reduce(function,iterable):对于序列内所有元素进行累计操作,即是序列中后面的元素与前面的元素做累积计算(结果是所有元素共同作用的结果)
1 def square(x,y): 2 return x*y 3 result = reduce(square,range(1,5)) 4 print(result)
#输出 24