一、高阶函数
1.1体验高阶函数
把函数作为参数传入,这样的函数为高阶函数。
abs()函数完成绝对值计算
abs(-10)#10
round()四舍五入计算
def sum_num=(a,b,f):
return f(a)+f(b)
result=sum_num(-1,2,abs)
print(result)
1.2内置高阶函数
2.2.1map()
map(func,lst),将传入的函数变量func作用到lst变量的每个元素中,并将结果组成新的列表
需求:计算list1序列中各个数字2次方
list1=[1,2,3,4,5]
def func(x):
return x**2
result=map(func,list1)
print(result)
print(list(result))
2.2.2reduce()
reduce(func,lst),其中func必须有两个参数,每次func计算的结果继续和序列的下一个元素做累计计算
注意:reduce()传入的参数func必须接受两参数
import functools
list1=[1,2,3,4,5]
def func(a,b)
return a+b
result=functools.reduce(func,list1)
print(result)
2.2.3filter()
filter(func,lst)函数用于过滤序列,过滤掉不符合条件的元素,返回一个filter对象。如果要转换为列表可以使用list()替换
list1=[1,2,3,4,5]
def func(x):
return x % 2 == 0
result+filter(func,list1)
print(result)
print(list(result))