Python基础教程高阶函数

白癜风全套检查多少钱 http://news.39.net/bjzkhbzy/170710/5529041.html

Python的高阶函数,就是map、filter、reduce,说它们是高阶函数,只是因为我们平时用的少,所以理解起来也有点费劲,事实上,它们功能很强大,也很好用易用。一起来看看吧。

为了避免每次学新东西总是掉进这样那样的坑中,我们从需求入手,理解了需求,掌握了用法,那就一通百通了。

Python高阶函数

需求一:对列表的每个成员做一些通用性的操作

平方函数

例1:多个数字组成的一个列表,我们想要对每个数字都乘以2,虽然使用for循环也能完成,但是明显太繁琐,使用map这个高阶函数,就简单多了。代码如下:

数字列表全体乘2

例2:多个字符串组成一个列表,要打印输出,一行一个,很明显,常规的方法只能是for循环遍历,然后输出的时候每个迭代变量加上\n才可以,也挺麻烦的吧,使用map这个高阶函数,就简单多了。代码如下:

所有字符串统一加上\n,一次输出

需求二:对列表做一个筛选操作

筛选函数

例1:对一个数字列表,筛选出其中的偶数,常规的方法是使用for循环,再在for循环中判断它,符合条件的保存到新列表中,最后再使用新列表,真的是太烦琐了,我们使用filter函数来个简单的:

筛选偶数

例2:对一个数字列表,筛选出其中3的倍数,这个就更简单了,filter函数上吧:

筛选3的倍数

需求三:列表的累加操作

复合函数

例1:对1到进行累加,这个功能太简单了,但是使用for循环实现仍然繁琐,使用reduce函数代码就很简洁:

数据列表项进行累加,使用reduce函数

例2:我们来个复杂点的,对一个数字列表中,大于60的数字求平均值,reduce函数就很简单了:

模拟求全班考试及格的学生的平均成绩

通过上面6个例子,相信大家对map、filter、reduce函数已经有了基本认识,事实上JS中也有这三个函数,逻辑是一样的,可以说是一通百通,大家只需要记住:所有成员统一操作用map、筛选过滤过filter、累加这样的复杂操作用reduce,就好啦。以后遇到类似的需求,就很快能解决问题了。

Python三大高阶函数的形象表示

上面这幅图来自网络,是Dzone上的一位名叫NeerajDana的大神的神作,也很形象:

map的作用,就是把三种水果分别切半filter的作用,就是在三种水果中找到橙子reduce的作用,就是将三种水果做成沙拉大神就是厉害啊!




转载请注明:http://www.aierlanlan.com/tzrz/4562.html

  • 上一篇文章:
  •   
  • 下一篇文章: