python 高阶函数简单介绍
把函数作为参数传入,这样的函数称为高阶函数,高阶函数是函数式编程的体现。函数式编程就是指这种高度抽象的编程范式。
1.体验高阶函数
在Python中,abs()函数可以完成对数字求绝对值计算。
abs(-10)#10
round()函数可以完成对数字的四舍五入计算。
round(1.2)#1 round(1.9)#2
需求:任意两个数字,按照指定要求整理数字后再进行求和计算。
方法1
defadd_num(a,b): returnabs(a)+abs(b) result=add_num(-1,2) print(result)#3
方法2
defsum_num(a,b,f): returnf(a)+f(b) result=sum_num(-1,2,abs) print(result)#3
注意:两种方法对比之后,发现,方法2的代码会更加简洁,函数灵活性更高。
函数式编程大量使用函数,减少了代码的重复,因此程序比较短,开发速度较快。
2.内置高阶函数
2.1map()
map(func,lst),将传入的函数变量func作用到lst变量的每个元素中,并将结果组成新的列表(Python2)/迭代器(Python3)返回。
需求:计算list1序列中各个数字的2次方。
list1=[1,2,3,4,5] deffunc(x): returnx**2 result=map(func,list1) print(result)#print(list(result))#[1,4,9,16,25]
2.2reduce()
reduce(func,lst),其中func必须有两个参数。每次func计算的结果继续和序列的下一个元素做累积计算。
注意:reduce()传入的参数func必须接收2个参数。
需求:计算list1序列中各个数字的累加和。
importfunctools list1=[1,2,3,4,5] deffunc(a,b): returna+b result=functools.reduce(func,list1) print(result)#15
2.3filter()
filter(func,lst)函数用于过滤序列,过滤掉不符合条件的元素,返回一个filter对象。如果要转换为列表,可以使用list()来转换。
list1=[1,2,3,4,5,6,7,8,9,10] deffunc(x): returnx%2==0 result=filter(func,list1) print(result)#print(list(result))#[2,4,6,8,10]
以上就是python高阶函数简单介绍的详细内容,更多关于python高阶函数的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。