Python 07 函数·下

7.2 函数·下

配套的 Python 教学视频


7.2.1 函数式编程

函数式编程:就是用函数来表示程序,用函数的组合来表达组合的意思。

① lambda 表达式

概念:当函数只有一个返回值,且只有一条代码语句的时候,就可以简写位 lambda 表达式。

格式: (lambda 形参:返回值)(实参)

在这里插入图片描述
有参数的:
在这里插入图片描述
有默认参数的:

在这里插入图片描述
可变参数:
在这里插入图片描述
字典可变参数:实际上提供的实参是按照准确搜索的方式 去 对应的
在这里插入图片描述

利用三目运算符 给lambda 表达式增加逻辑判断:
在这里插入图片描述

字典排序:sort(key) 方法里面有一个参数,叫做根据关键字,也就是说我们会根据 你提供的 key 来进行排序,而key 支持 lambda 表达式。

如果 key 的值 是一个lambda 表达式,那么它的 实参 默认就是 序列的每个元素了!


列表名=[{'名':'牟','龄':19 },{'名':'白','龄':33},{'名':'李',"龄":80 }]

列表名.sort(key=lambda a:a['名'])

print(列表名)

在这里插入图片描述
这样我们就可以根据 每个元素的 ‘名’ 这个键 的 值 来进行一个排序了。

字符串比较大小的话,肯定是 比较 先后顺序。


7.2.2 高阶函数

就是基于 已有函数定义 新函数,以函数 作为参数 加以利用,返回的 大多都是 函数的地址。但 也有可能 不是!这个完全 取决 于自己。

def absAdd(a,b,c):
    return c(a)+c(b)

print(absAdd(-6,-8,abs))

在这里插入图片描述
其实 这种 东西,在 C/C++ 里面 叫做 回调函数!即 函数 也可以 当作参数。然后 在 其它函数里面 加以利用!这样做的 目的是更加的灵活。因为 回调函数 可以 随时更换!同样的数据 在不同的 情况下,要用不同的 函数 来进行 数据处理,所以 我们才需要这个 回调函数!

在 Python 里面 有一些 设定 好的 函数,直接 支持 回调函数的使用。而且 本身 是有 实战意义的!

filter(回调函数,序列) 让 我们 提供一个 回调函数,它要求 这个回调函数 必须是 对 序列 有逻辑判断的,说白了就是 要对 这个序列里的元素 进行一个筛选!

比如说我们 就不想要 3 这个 数字。

print(list(filter((lambda x: x if x != 3 else ""), 列表)))

在这里插入图片描述

map(回调函数,序列) 让我们提供一个 回调函数,它要求 这个回调函数 必须是 拥有运算功能,也就是 把 我们 序列里的 每个元素 都依靠 这个 运算功能 进行 处理。

这种 高阶函数,返回的是一个 地址,大家 一定别忘了 强转!因为 它不确定 处理的 这个可迭代 对象 到底是 什么类型的。一定要理解 为啥要这样做!哈哈 ~

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

functools.reduce(回调函数,序列) 迭代运算!让我们提供一个 回调函数,它要求 这个回调函数 必须拥有运算能力,而且 必须 具有两个参数!因为这样才能 往下迭代 运算呀。

注意哟,这个 函数 因为 它不返回 序列,只 返回迭代计算后的最终结果,所以不是 一个 地址。不需要强转!

print(functools.reduce(lambda a,b:a+b,range(1,101)))

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值