python 函数式编程

map/reduce

map()函数接收两个参数,一个是函数,一个是Iterable。

map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。

举例:函数f(x)=x^2,把函数作用于一个list[1,2,3,4,5,6,7,8,9]

可用map实现:f(x)=x*x

r=map(函数名,iterator)返回结果。

map作为高阶函数,可以计算任意复杂的函数。

比如:str,记得以list输出。

reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数。

reduce把结果继续和序列的下一个元素做累积计算。(类似于循环计算)

求和那个可以直接用sum()

把str转换成int的函数:见我函数。

 

filter

python内建的函数,用于过滤序列。

也是接收一个函数和一个序列。

map()不同的是,filter()把传入的函数依次作用于每个元素,

然后根据返回值是True还是False决定保留还是丢弃该元素。

python可以直接返回一个表达式是True还是False,判定相等,用==。

可判断序列中的奇数偶数以及是否有空字符串。

s.strip()删除空字符的函数

str.strip([chars]);

Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。

注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。

filter返回的是一个惰性序列,需要用list接住。

用filter求素数:首先构造一个奇数序列因为偶数不是素数

先返回2

再从3开始,遇到他的倍数就删掉,构造出新的序列,再从5开始,周而复始的循环,用while true

最后输出for循环的时候记得加个限定条件,大于就break就完事了

sorted

可以直接对list排序,关键在于实现一个映射函数。

可以接收一个key函数来实现自定义的排序,例如按绝对值大小排序

sorted(【L】,key=这个函数)key指定的函数将作用于list的每一个元素上,并根据key函数返回的结果进行排序

还可以对字符串进行排序,默认按照ascii大小比较,但可以通过一些函数修改

比如key=str.lower

反向排序不需要改动key函数,直接加第三个函数:reverse=True

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值