函数式编程 map reduce filter

                                                                                函数式编程

对与数学函数y=2x+1,我们知道,每给定一个x,y就随之确定了。

对于pyhton中的函数式编程也是如此,每给定一个输出,输出就随之确定了。

函数式编程的还有一个特点是允许函数本身作为一个参数,还允许函数作为返回值。

高阶函数的定义:1.参数为函数    2。返回值为函数  3.参数或者返回值其中一个是函数即为高阶函数。

常用的高阶函数 map reduce filter


                                                    map
map函数的格式:map(func,seq1[]seq2,seq3..])

map函数收一个函数f和与可迭代对象,并通过函数f一次作用在可迭代对象的每个元素上,得到的是一个迭代器对象。

在上面的例子中,通过map方法我们得到了一个迭代器对象,打印出来的是迭代器所在的内存空间,我们可以通过list()方法,将它转化为list对象。

对与上面的例子,我们还可以通过匿名函数的方式来实现


当参数中含有多个可迭代对象时



注意事项:当seq长度不一致时,存在短板现象(个人习惯叫法)

eg


                                                            filter函数

filter函数的英文意思是过滤器,从函数命名它的作用是用来筛选出符合条件的元素

filter函数只允许接收两个参数,一个是函数f,另一个是可迭代对象。返回类型是一个迭代器对象。

filter的格式:filter(f,seq)


当传入多个参数时报错。


eg:筛选出1-100的偶数


                                                                    reduce函数

reduce函数我们可以理解为1个聚合函数。在python以后,reduce 函数已经不再内置函数了,要用它,就需要from functools import reduce.

reduce函数的格式:reduce(f,seq[,init])

参数中的函数f,是一个有两个参数的函数,,也就是说f是一个二元操作函数。reduce函数依次从seq中取一个元素,和上一次调用f的结果一起作为参数,再次调用f。如果提供init,第一次会将init和seq中的第一个元素作为参数传给f;如果不提供init,那么就取出seq中的第一和第二个元素作为参数传给f。

eg:











  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值