python——高阶函数、4种内置高阶函数、匿名函数、快速生成内推/验证码

1.高阶函数的定义

高阶函数是一个返回函数的函数。
他的实参是一个函数名,他的返回值是一个函数。

函数可以赋值给变量,变量也可以指向函数
在这里插入图片描述
在这里插入图片描述
高阶函数传递的参数包括函数名
在这里插入图片描述
在这里插入图片描述

2.内置的高阶函数

(1)map函数
map()函数接收俩个参数,一个是函数,一个是序列。
map将传入的函数依次作用到序列的每个元素,并且把结果作为新的序列返回。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2) reduce函数
reduce:把一个函数作用在一个序列上,这个函数必须接收俩个参数,reduce把结果继续和序列的下一个元素做累计算
如:累积
reduce(f,[x1,x2,x3,x4,x5]) = f(f(x1,x2),x3),x4)

python2:reduce是内置函数
python3:需要先 from functools import reduce 将reduce函数导入进来

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)filter函数
filter过滤函数和map()类似,也接收一个函数和一个序列,但是和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述(4)sorted函数
默认sort方法和sorted函数都是由小到大进行排序,reverse=True是由大到小。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
示范:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
例题:
携程春招题:

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

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

3.匿名函数

匿名函数:关键字为lambda ,冒号前面是形参 ,冒号后面是返回值
代码块重复,这时候必须考虑用到函数,降低程序的冗余度
代码块复杂,这时候可以考虑用到函数,降低程序的可读性
在Python,有两种函数,一种是def定义,一种是lambda函数
假如要求两个数之和,用普通函数或匿名函数如下
def func(x,y):return x+y
lambda x,y: x+y
格式:lambda *args,**kwargs:(args,kwargs)

(1)应用:求和
在这里插入图片描述
在这里插入图片描述
(2)求平方
在这里插入图片描述
(3)找出100以内的所有偶数
在这里插入图片描述
(4)移动数组中的0
在这里插入图片描述

4.快速生成验证码,内推码

在这里插入图片描述
在这里插入图片描述
上面函数能生成验证码,但是代码不够简单,代码优化如下:
在这里插入图片描述
在这里插入图片描述
上面是俩种能生成内推码的函数,现在我们来快速生成多个内推码
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值