Python中自带了几个比较有意思的函数,一般在面试或者笔试基础的时候会问到,其中3个就是map、filter、reduce函数。
创新互联是一家专业提供青浦企业网站建设,专注与成都做网站、网站制作、H5响应式网站、小程序制作等业务。10年已为青浦众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。
1.map(function, iterable)
它第一个要传的元素是函数名或lambda匿名函数表达式,第二个元素传入可迭代对象。
array = [1,2,3,4,5]result = map(lambda x:x+1,array)result#这里result直接打印的结果是一个对象,需要用list转化一下才 可以看到具体结果
这里我们可以看到,map函数结果里的每一个元素都比原列表对应的元素大1,而我缩写的lambda表达式就是将每个元素加1。
由此可以看出map()函数的作用就是将可迭代对象里的每个元素进行函数操作,然后将元素操作后所组成的可迭代对象返回。
2.filter(function, iterable)
同样,第一个参数传入函数名或匿名函数,第二个元素传入可迭代对象
#先按map的函数传入试一下array = [1,2,3,4,5]result = filter(lambda x:x+1,array)resultlist(result) #结果没有变化,说明对参数没有进行操作返回[1, 2, 3, 4, 5] #将函数进行True、False判断返回试一下result1 = filter(lambda x:x if x%2==0 else None,array)result1 list(result1) #返回了为True的值[2, 4]
由上面的代码可以得出,filter()函数是将可迭代对象的元素代入函数,然后返回为True的元素,一般做筛选的时候可以用到,不用再写循环。
3.reduce(function, iterable)
reduce函数只有在python2中才有,传入参数和map、filter是一样的。但它的函数传入的是两个元素,将前两个元素代入函数后返回操作后的值,将返回的值再作为第一个元素,同时将第三个元素作为第二个元素再次代入函数进行运算,直到结束返回最后结果。
array = [1,2,3,4,5] result = reduce(lambda x,y:x+y,array) list(result) #1+2+3+4+5=1515
它的操作步骤其实很简单:
第一次x=1,y=2传入匿名函数,x+y是返回的值3
第二次x=3(返回的那个3),y=3(此3为列表中第二个元素)代入函数,返回x+y为6
第三次x=6,y=4,返回x+y为10
第四次x=10,y=5,返回x+y为15
后边没有元素可传入直接结束。
温馨提示:python工具里自带的函数不一定是最快的算法,只是为了方便使用,编写代码快速、简洁,如果追求速度的话还是要自己手撸最优算法。(所以面试才有那么多算法和数据结构的题目)
本文标题:创新互联Python教程:Python中几个必须知道的函数
地址分享:http://www.csdahua.cn/qtweb/news36/553436.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网