首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python/测试/测开-刷题第2天

python/测试/测开-刷题第2天

作者头像
测试开发囤货
发布2021-11-29 10:38:31
发布2021-11-29 10:38:31
53700
举报
文章被收录于专栏:测试开发囤货测试开发囤货
运行总次数:0

背景介绍

  • 整理面试题,开始刷题【python】【测试】【测开】相关。

解决方案

  • 人无我有,人有我精

面试题02:Lambda函数是什么,举例说明的它的应用场景。

点评:这个题目主要想考察的是Lambda函数的应用场景,潜台词是问你在项目中有没有使用过Lambda函数,具体在什么场景下会用到Lambda函数,借此来判断你写代码的能力。因为Lambda函数通常用在高阶函数中,主要的作用是通过向函数传入函数或让函数返回函数最终实现代码的解耦合。

Lambda函数也叫匿名函数

它是功能简单用一行代码就能实现的小型函数。

  • Python中的Lambda函数只能写一个表达式,这个表达式的执行结果就是函数的返回值,不用写return关键字。
  • Lambda函数因为没有名字,所以也不会跟其他函数发生命名冲突的问题。

实操【可能会让你手写的】

python一行流,用一行代码实现:将一个列表里的每个元素都平方。

为了作比较,我们先用常规方法写一个

代码语言:javascript
代码运行次数:0
运行
复制
def sq(x):
    return x*x

map(sq,[y for y in range(10)])

再用lambda函数来编写代码

代码语言:javascript
代码运行次数:0
运行
复制
map(lambda x: x*x,[y for y in range(10)])

从这个简单的例子,我们可以看出,用lambda函数首先减少了代码的冗余,其次,用lambda函数,不用费神地去命名一个函数的名字,可以快速的实现某项功能,最后,lambda函数使代码的可读性更强,程序看起来更加简洁。

用一行代码实现求阶乘的函数

代码语言:javascript
代码运行次数:0
运行
复制
jc = lambda x: __import__('functools').reduce(int.__mul__, range(1, x + 1), 1)

用一行代码实现求最大公约数的函数等。

代码语言:javascript
代码运行次数:0
运行
复制
gys = lambda x, y: y % x and gcd(y % x, x) or x

进阶

Lambda函数其实最为主要的用途是把一个函数传入另一个高阶函数(如Python内置的filter、map等)中来为函数做解耦合,增强函数的灵活性和通用性。

下面的例子通过使用filter和map函数,实现了从列表中筛选出奇数并求平方构成新列表的操作,因为用到了高阶函数,过滤和映射数据的规则都是函数的调用者通过另外一个函数传入的,因此这filter和map函数没有跟特定的过滤和映射数据的规则耦合在一起。

代码语言:javascript
代码运行次数:0
运行
复制
items = [12, 5, 7, 10, 8, 19]
items = list(map(lambda x: x ** 2, filter(lambda x: x % 2, items)))
print(items)    # [25, 49, 361]

再次进阶

优化上面的代码:用列表的生成式来实现

代码语言:javascript
代码运行次数:0
运行
复制
items = [12, 5, 7, 10, 8, 19]
items = [x ** 2 for x in items if x % 2]
print(items)    # [25, 49, 361]
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试开发囤货 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景介绍
  • 解决方案
  • 面试题02:Lambda函数是什么,举例说明的它的应用场景。
  • Lambda函数也叫匿名函数
  • 实操【可能会让你手写的】
  • 进阶
  • 再次进阶
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档