函数式编程
对与数学函数y=2x+1,我们知道,每给定一个x,y就随之确定了。
对于pyhton中的函数式编程也是如此,每给定一个输出,输出就随之确定了。
函数式编程的还有一个特点是允许函数本身作为一个参数,还允许函数作为返回值。
高阶函数的定义:1.参数为函数 2。返回值为函数 3.参数或者返回值其中一个是函数即为高阶函数。
常用的高阶函数 map reduce filter
map
map函数的格式:map(func,seq1[]seq2,seq3..])在上面的例子中,通过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: