python的变量可以指向函数,函数名是指向函数的变量

高阶函数:
  • 接收函数作为参数的函数
  • 函数的参数可以接受变量
  • 变量可以指向函数

常用的高阶函数
  1. map()

    map是python内置的高阶函数,接收两个参数,函数func和列表list,func依次作用于list中的每个元素,得到 并返回一个新的list

Demo:

  1. 假设用户输入的英文名字不规范,没有按照首字母大写,后续字母小写的规则,请利用map()函数,把一个list(包含
  2. 若干不规范的英文名字)变成一个包含规范英文名字的list
def formate_name(s):
    return s[0].upper+s[1:].lower()
list = ['adam', 'LISA', 'barT']
map(formate_name, list)

2.reduce()

接收两个参数,函数func和列表list,func必须接收两个参数并重复作用于list中的元**素**,返回最终的结果

Demo:

求积函数
输入[2,5,7,9]
输出 2*5*7*9
def func(x, y):
    return x*y
list = [2,5,7,9]
reduce(func, list)

3.filter()

接收两个参数,函数func和列表list,func对每个元素进行判断,返回true或false,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list

Demo:

利用filter()过滤出1~100中平方根是整数的数
import math

def func(x):
    r = int(math.sqrt(x))
    return r*r == x
filter(func,range(1,101))