18.高阶函数

1.filter函数

rest=filter(f,l)#f是条件函数,l是元组或者列表
#作用是将l中的元素依次赋给f的参数,如果满足f,使f的返回值为true,则被筛选出来,生成一个迭代器对象
list(rest)#将生成的对象强制性转换为列表
lambda n:n%2!=0
#相当于
def f(n):
      return n%2!=0

2.map函数(代替循环)

rest=map(lambda m:m*m*m,l)#返回一个可迭代对象,map返回的结果是包含m*m*m值的对象
list(rest)#得到的是将l中的每个元素3次方之后的列表
image.png

image.png

3.reduce函数

附上链接:https://thepythonguru.com/python-builtin-functions/reduce/
The reduce() function accepts a function and a sequence and returns a single value calculated as follows:

1.Initially, the function is called with the first two items from the sequence and the result is returned.
2.The function is then called again with the result obtained in step 1 and the next value in the sequence. This process keeps repeating until there are items in the sequence.
简而言之reduce(function, sequence[, initial])中的initial的效果就是充当第一个元素,与sequence中的第一个元素先当做第一对参数输入进function

reduce(f,l)#将l中的各个元素按照f方法一次合并
#执行原理,先读取l中的前两个元素作为参数传入f函数中,将返回的
#结果作为第一个参数,然后在读取后面一个元素作为第二个参数,
#一次类推,返回f函数的最终结果值
#使用reduce()函数应先行导入(from functools import reduce)

你可能感兴趣的:(18.高阶函数)