#coding:utf-8 __author__ = 'kx' # 比较filter,map,reduce a=lambda x:x**2 listTest=[12,29,22,17,23,8] b=filter(a,listTest) print(b) #测试一个函数为空的 b1=filter(None,listTest) print(b1) #测试一个列表是字符串类型的 def a1(s): if 's'in s: return 1 b2=filter(a1,'smeill') print(b2) #map c=map(a,listTest) print(c) #测试上面的包含一个参数,测试一个包含两个参数的 c1=map(lambda x,y:x+y,[1,3,5,7,9],[2,4,6,8,10]) print(c1) #reduce d=reduce(lambda x,y:x+y,[1,2,3,4,5],1) print(d) e=reduce(lambda x,y:x+y,listTest) print(e) #结论:filter函数会对序列参数sequence中的每个元素调用function函数,最终返回的结果是调用结果为TRUE的元素 #map函数中,function可以理解为是一个一对多或多对一的函数,map的作用是以参数序列中的每一个元素调用function函数, #map返回包含每次function函数返回值的list #reduc函数会对参数序列中元素进行总体计算 #reduce中的function参数是一个有两个参数的函数,reduce依次从seq中取出一个元素,和上次调用function的结果做参数 #再次调用function # 第一次调用function时,如果提供initial参数,会以seq中的第一个元素和initial作为参数调用function, #否则会以序列seq中的前两个元素做参数调用function
# 比较filter,map,reduce
最新推荐文章于 2024-05-26 21:42:39 发布