什么是高阶函数,就是把函数名作为参数的函数,常见的有
1.sorted,一看名字就知道这个是用来排序的,默认是升序,也可以设置参数resevred=false来降序,返回的是一个列表,那如果我们想按照绝对值的大小来排序呢
,比如说-5大于4
abs是内建函数abs(),用来求绝对值的,这里只要把名字传进去就可以,过程如下,2经过abs变成2,-3先经过abs变成3,。。。然后在进行比较,3>2,所以原值-3就在2前面,当然我们也可以传匿名函数lamdba,效果是一样的
2.map,map是把iterable中的每一个对象都作用于函数参数,注意返回的是一个Iterator
3.filter,filter把每个Iterable中的元素都在参数函数进行过滤,返回值为true的就保留,返回的也是一个Iterator
4.reduce,reduce是把其中的元素进行累计,比如
先把第一个元素1和第二个元素2相乘,结果再作为函数第一个参数,再把第三个元素-3作为函数第二个参数,如此循环下去,返回的是一个数字,
要注意的是在python2中reduce是内建函数,可以直接用,但是在python3中是放在functools模块中的
在很多语言中都会有map,filter,reduce函数,比如javascript,但是作用都是一样