# 比较filter,map,reduce

来源:互联网 发布:淘宝定位在哪 编辑:程序博客网 时间:2024/04/30 18:32
#coding:utf-8__author__ = 'kx'# 比较filter,map,reducea=lambda x:x**2listTest=[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 1b2=filter(a1,'smeill')print(b2)#mapc=map(a,listTest)print(c)#测试上面的包含一个参数,测试一个包含两个参数的c1=map(lambda x,y:x+y,[1,3,5,7,9],[2,4,6,8,10])print(c1)#reduced=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