Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Python 匿名函数

Python 匿名函数

作者头像
小嗷犬
发布于 2022-11-15 08:10:00
发布于 2022-11-15 08:10:00
45200
代码可运行
举报
运行总次数:0
代码可运行

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的博客 🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 🥭本文内容:Python 匿名函数


Python 匿名函数


1.lambda 函数定义

Python 中提供了一项非常有用的功能:利用 lambda 函数来替代 def, 创建一个临时简单函数。 请注意, 与 def 语句不同,lambda 是一个表达式。 这就使得 lambda 能够出现在函数调用的参数中。而 def 语句则不能作为参数传递给函数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
lambda <args>: <expression>

lambda表达式创建一个函数,它会返回函数本身。 这也是lambda被称为匿名函数的原因,它本身是没有名称的。如果需要在后面代码中使用该匿名函数,也可以将它赋值给一个变量。这个变量的类型就是一个函数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
getSecondItem = lambda x: x[1]
print(type(getSecondItem))
print(getSecondItem(['C','1972']))

下面列举一些 Python 中经常用到匿名函数的场景。


2.应用一:列表排序

对于列表的sort()方法,可以通过key来传入一个函数,sort()方法将利用这个函数对列表每个元素的返回结果来排序。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
language = [('C', '1972'), ('C++', '1979'), 
('Java', '1995'), ('Python', '1989')]
language.sort(key=lambda x:x[1])
	for name, time in language:
		print(name, time)

3.应用二:映射函数 map

map()函数, 可以对序列中的每个元素应用某个内置函数, 并把函数结果收集起来,构成一个可迭代的map对象。 除了内置函数,常常会使用一些自定义的匿名函数来对序列元素进行映射。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
language = [('C', '1972'), ('C++', '1979'), 
('Java', '1995'), ('Python', '1989')]
language_map = map(lambda x:x[0], language)
language_name = list(language_map)
print(language_name)

4.应用三:选择函数 filter

map函数类似,filter函数也可以接受一个返回结果为布尔值的函数和可迭代对象作为实参。其作用是将可迭代对象中每一个元素都应用到传入的函数中,并将函数返回为True的元素添加到结果中,即对可迭代对象中的元素进行过滤。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
language = [('C', '1972'), ('C++', '1979'), 
('Java', '1995'), ('Python', '1989')]
language_filter = filter(lambda x:int(x[1]) < 1990, language)
language_list = list(language_filter)
print(language_list)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python匿名函数/排序函数/过滤函数
  lambda表示的是匿名函数. 不需要用def来声明, 一句话就可以声明出一个函数
py3study
2020/01/15
1.1K0
匿名函数、内置函数、面向过程编程
之前学到的函数都是有名函数,所谓匿名函数就是这类函数没有自己的函数名。他没有绑定名字,使用一次就被回收,加括号就可运行。
GH
2022/05/10
4010
Python中匿名函数与内置高阶函数详解
大家好,从今天起早起Python将持续更新由小甜同学从初学者的角度学习Python的笔记,其特点就是全文大多由新手易理解的代码与注释及动态演示。刚入门的读者千万不要错过!
刘早起
2020/06/04
7040
5.匿名函数,内置函数II,闭包
匿名函数,顾名思义就是没有名字的函数,那么什么函数没有名字呢?这个就是我们以后面试或者工作中经常用匿名函数 lambda,也叫一句话函数。
changxin7
2019/09/10
6410
5.匿名函数,内置函数II,闭包
匿名函数,内置函数,闭包
练习: def func(a,b): return a + b print(func(4,5)) # 构建匿名函数 func1 = lambda a,b: a + b print(func1(1,2))
py3study
2020/01/16
5850
Python匿名函数lambda的使用
在Python中,不通过def来声明函数名字,而是通过lambda关键字来定义的函数称为匿名函数。
Python碎片公众号
2021/02/26
3K0
Python匿名函数lambda的使用
Python 之父为什么嫌弃 lambda 匿名函数?
Python 支持 lambda 匿名函数,其扩展的 BNF 表示法是lambda_expr ::= "lambda" [parameter_list] ":" expression,也就是lambda 参数序列:表达式。
Python猫
2020/09/22
9310
python-3_函数_匿名函数_正则_
L=['a','b','c','d'] for (offset,item) in enumerate(L):     print offset,item 打印的结果: 0 a 1 b 2 c 4 d 迭代器: for i in range(100):     生成列表 for i in xrange(100)    迭代器,速度会比range快 readlines()    xreadlines() a=iter(list) 生成迭代器 a.next() 节省内存:只记录迭代的开头和结尾,当前位置。 和函数一起使用,可以使函数中断并保存函数的中断状态,yield,可以减少程序的阻塞 例子: def run():     print "test1"     yield 1                #变成迭代器,程序运行到这里会停止跳到外面的执行。yield相当于返回值。     time.sleep(1)     print "test2"     time.sleep(1)     print "test2"     time.sleep(1)     print "test2"     time.sleep(1) task=run() task.next() print '--do sth else---' task.next()        #如果不加本行,就不会执行yield后面的。 函数: 函数中可以直接修改全局的列表 字典等复杂的数据类型。 lambda函数(匿名函数): def f(x):    return x**2     g = lambda x:x**2  匿名函数的写法 print map(f,range(10))   把列表输入函数运算,再返回结果 print map(lambda x:x**2,range(10)) sorted()用法:例子是对字典key进行排序(虽然字典是无序的) dic1={3:2,4:3,6:9,'a':'test','e':'fff','*':'$'} print sorted(dic1.items(),key=lambda x:x[0]) rgs kargs 内置函数: a=range(10) a=iter(a)    #把列表变成了迭代器 a.next() print [i for i in a if a<5] filter(lambda x:x*x,a)  选出符合的元素 a=[1,2,3,4]  b=[5,6,7,8,9,10] zip(a,b) [(1,5),(2,6),(3,7),(4,8)] map(None,a,b) [(1,5),(2,6),(3,7),(4,8),(none,9),(none,10)] reduce(lambda x,y:x+y,a) 序列化: 硬盘上只能存字符串或者二进制,因此不能存字典,列表等。 pickle 只是python中使用的序列化类型。 pickle.dump(对象,文件句柄)  pickle.load()    pickle.dump(dic1,f) json.dump()  json.load() 正则表达式: m = re.match("\d",匹配的对象)   match是从开头匹配。 查看匹配到字符: m.group()            re.search()全局查找匹配 re.findall() 查找所有匹配到的 re.split()  按照符号分割 re.sub('\d',"|",字符对象)   把梳子全部替换成| re.sub('\d',"|",字符对象,count=2)  只替换前两个 模块的创建和导入: if __name__=='__main__'   主动执行会执行,导入不执行 常用模块: Import sys Sys.path Sys.path Sys.exit Import os os.system('uname') Os.mkdir('myDir') Os.chdir('~')
py3study
2020/01/11
3480
测开之函数进阶· 第4篇《匿名函数》
Python 中有一种特殊的函数,不需要使用def去定义,也不用给函数起名字。用lambda表达式来定义,这种函数叫做匿名函数。
清菡
2021/01/04
6300
测开之函数进阶· 第4篇《匿名函数》
Python基础:lambda 匿名函数
  匿名函数 lambda 和常规函数一样,返回的都是一个函数对象(function object)
py3study
2020/01/15
3550
Python自动化开发学习3-2-匿名函数、内置函数
下面这部分内容计划应该是第三周讲的,但是应该是当时来不及,第四周上来的内容又比较重要,就放到了第四周讲完后才讲了。
用户7886150
2021/01/28
2750
Python中的匿名函数
写python的时候,大多数场景下,我都是if else选手,因为最核心的逻辑几乎都是通过if else语句来实现的。关于匿名函数这块儿,其实可以用常见的循环等方法来实现,但是如果你想成为一个python的高手,匿名函数还是必须要了解的。因为匿名函数,能够让你的代码足够简洁,
AsiaYe
2021/03/13
1K0
Python中堪称神仙的6个内置函数
大家好,我是小五。之前给大家分享过3个节省时间的Python技巧,当时就提出了,大家可以多使用Python的内置函数,既能提高自己的Python程序速度,同时还能保持代码简洁易懂。
快学Python
2022/06/10
4370
Python中堪称神仙的6个内置函数
python——内置函数和匿名函数
内置函数 接下来,我们就一起来看看python里的内置函数。截止到python版本3.6.2,现在python一共为我们提供了68个内置函数。它们就是python提供给你直接可以拿来使用的所有函数。这些函数有些我们已经用过了,有些我们还没用到过,还有一些是被封印了,必须等我们学了新知识才能解开封印的。那今天我们就一起来认识一下python的内置函数。这么多函数,我们该从何学起呢? Built-in Functions abs() dict() help() min() setattr()
用户1214487
2018/01/23
7770
python——内置函数和匿名函数
python map函数
截至到目前为止,其实我们已经接触了不少的python内置函数,而map函数也是其中之一,map函数是根据指定函数对指定序列做映射,在开发中使用map函数也是有效提高程序运行效率的办法之一.
猿说编程[Python和C]
2020/03/02
8400
python map函数
python 内置、匿名、高阶、递归等函数(3.1)
认识Python自带的, 可全局调用的函数, 避免我们命名冲突导致了函数性状发生改变
友儿
2022/09/28
3250
4 Python 基础: 讲解迭代、过滤、匿名函数、排序算法四大知识点
如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)。
野原测试开发
2019/09/10
7310
4 Python 基础: 讲解迭代、过滤、匿名函数、排序算法四大知识点
【Python】函数进阶 ④ ( Lambda 匿名函数 | 具名函数与匿名函数 | Lambda 函数定义语法 )
在 Python 中 , 使用 def 关键字定义的函数 是 " 具名函数 " , 也就是有名字的函数 ;
韩曙亮
2023/10/11
3390
【Python】函数进阶 ④ ( Lambda 匿名函数 | 具名函数与匿名函数 | Lambda 函数定义语法 )
4 Python 基础: 讲解迭代、过滤、匿名函数、排序算法四大知识点
如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)。
野原测试开发
2019/07/24
5650
4 Python 基础: 讲解迭代、过滤、匿名函数、排序算法四大知识点
【从零学习python 】30.深入理解递归函数和匿名函数
看阶乘的规律 1! = 1 2! = 2 × 1 = 2 × 1! 3! = 3 × 2 × 1 = 3 × 2! 4! = 4 × 3 × 2 × 1 = 4 × 3! … n! = n × (n-1)!
全栈若城
2024/02/29
1070
【从零学习python 】30.深入理解递归函数和匿名函数
推荐阅读
相关推荐
Python匿名函数/排序函数/过滤函数
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验