打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python函数式编程之几个常用的内建函数归纳汇总

python是支持多种范型的语言,可以进行所谓函数式编程,其突出体现在有这么几个函数:

mapyieldlambdafilterreduce

有了它们,最大的好处是程序更简洁;没有它们,程序也可以用别的方式实现,只不过麻烦一些罢了。所以,还是能用则用之吧。更何况,恰当地使用这几个函数,能让别人感觉你更牛X。

1. map(function, sequence)

  1. 基本样式是:map(func,seq)

map()函数接收两个参数,一个是函数,一个是Iterablemap将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。

例子:

1.1 一般方法

使用map实现:

map实现

2. yield

yield这个词在汉语中有“生产、出产”之意,在python中,它作为一个关键词(你在变量、函数、类的名称中就不能用这个了),是生成器的标志。含有yield关键词的函数返回值是一个生成器类型的对象,这个生成器对象就是迭代器。只要用了yield语句,那个普通函数就神奇般地成为了生成器,也就具备了迭代器的功能特性。

用上yield的斐波那契数列

3. lambda

lambda函数,是一个只用一行就能解决问题的函数

基本样式是:lambda arg1, arg2, ...argN : expression using arguments

lambda函数的使用方法:

    • 在lambda后面直接跟变量

    • 变量后面是冒号

    • 冒号后面是表达式,表达式计算结果就是本函数的返回值


3.1 lambda这个函数替代add(x)

3.1 z的值

lambda求n的阶乘

4.

filter(function, sequence)

filter的中文含义是“过滤器”,在python中,它就是起到了过滤器的作用,用于过滤序列。

map()类似,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

在一个list中,删掉偶数,只保留奇数

把一个序列中的空字符串删掉



5. reduce(function, sequence, starting_value)

对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用

reduce

6.sorted()

sorted()函数就可以对list进行排序

对list进行排序

sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序,例如按绝对值大小排序:

接收一个key函数来实现自定义的排序


给sorted传入key函数,即可实现忽略大小写的排序

反向排序,不必改动key函数,可以传入第三个参数reverse=True



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python特殊语法:filter、map、reduce、lambda
python中的map、filter、reduce函数
Python入门教程:内置函数—Map、Reduce、Filter
Python: lambda, map, reduce, filter
函数式编程
看完这道题,你才能领略Python的魅力!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服