python的变量可以指向函数,函数名是指向函数的变量
高阶函数:
- 接收函数作为参数的函数
- 函数的参数可以接受变量
- 变量可以指向函数
常用的高阶函数
- map()
map是python内置的高阶函数,接收两个参数,函数func和列表list,func依次作用于list中的每个元素,得到 并返回一个新的list
Demo:
假设用户输入的英文名字不规范,没有按照首字母大写,后续字母小写的规则,请利用map()函数,把一个list(包含
若干不规范的英文名字)变成一个包含规范英文名字的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))