python 高阶函数

高阶函数

-实参是一个函数名
-函数的返回值是一个函数

def fun(num1,num2):
return num1 + num2
a = fun(84,5)
print(a)
在这里插入图片描述

#abs()求取绝对值;
print(abs(-10))
10

f =abs
print(f(-10))
在这里插入图片描述
f 的类型为函数

说明可以将函数赋值给变量,那么变量也就可以指向函数

那么函数的参数可以是一个变量,而变量可以指向一个函数名,那么一个函数就可将另一个函数名作为参数
这种函数就是高阶函数

在这里插入图片描述

内置高阶函数map()

map():接收两个参数,一个是函数 一个是序列(列表)
map将传入的函数依次作用到序列的每个元素,并且把结果作为新的序列返回
map()函数直接输出是一段存储地址,可以将其转换为列表形式查看
在这里插入图片描述

在这里插入图片描述

内置高阶函数reduce()

reduce:接收两个参数,把一个函数作用在一个序列上,
reduce会把结果继续和序列的下一个元素做累积计算
reduce(f,[a,b,c,d,e])=f(f(f(a,b),c),d)

python2中:reduce是内置函数
python3:需要输入 from functools import reduce 倒入reduce函数

求1~10的累乘
在这里插入图片描述
求1~100的累加和

在这里插入图片描述
练习:将一个字符串数字转化为整形

内置高阶函数filter()函数

filter过滤函数:接受一个函数和一个序列
filter函数把传入的函数依次作用于每个元素(与map一样),然后根据返回值
是True还是False来决定保留或者丢弃该元素

在这里插入图片描述

内置高阶函数sorted()

sort()和sorted()的区别
python中列表的内置函数sort()可以对列表中的元素进行排序,会改变原列表中元素的顺序
而全局性的sorted()函数则对所有可迭代的序列都是适用的;而sorted()函数会将原序列排序后产生一个新的序列,不会改变原序列。
在这里插入图片描述
sorted()函数还可以接收一个key函数来实现自定义的排序
key指定的函数将作用于序列的每一个元素上,并根据每个元素key函数返回的结果进行排序,生成以一个新序列。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

sorted()函数练习

给定一个整形数组, 将数组中所有的0移动到末尾, 非0项保持不变;
在原始数组上进行移动操作, 勿创建新的数组;
#输入:
第一行是数组长度, 后续每一行是数组的一条记录;
4
0
7
0
2
#输出:
调整后数组的内容;
7
2
0
0

在这里插入图片描述

匿名函数

当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。
而在Python中,对匿名函数提供了有限支持。
匿名函数的关键字为lambda,冒号前面是形参,冒号后面是返回值(匿名函数有个限制,就是只能有一个表达式)
优点:
1.函数没有名字,不必担心函数名冲突。
2.匿名函数也是一个函数对象;也可以把匿名函数赋值给一个变量,再利用变量来调用该函数

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值