Python 匿名函数 lambda - Python零基础入门教程
目录
- 一.Python 匿名函数 lambda 语法
- 二.Python 匿名函数 lambda 调用
- 1.lambda 匿名函数常规使用
- 2. lambda 匿名函数使用不定长参数
- 3. lambda 匿名函数作为参数使用
- 三.Python 匿名函数 lambda 重点总结:
- 四.猜你喜欢
零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门
在 Python 开发中常规的函数在调用之前都需要先声明,而 Python 匿名函数,有速写函数的功能并且匿名函数不需要声明也没有函数名字,完全不需要担心函数名冲突,具体的妙用还需要从实战练习中多多积累经验。
一.Python 匿名函数 lambda 语法
lambda a,b,c:expression
1.匿名函数有关键字 lambda 修饰;
2.匿名函数冒号 : 之前的是函数的参数,匿名函数可以是无参匿名函数,也可以是带参匿名函数;
3.匿名函数冒号 : 之后是表达式,匿名函数不需要写 return,表达式的结果就是返回值;
# !usr/bin/env python# -_- coding:utf-8 \__-"""@Author:猿说编程@Blog(个人博客地址): www.codersrc.com@File:Python 匿名函数 lambda.py@Time:2021/04/11 09:00@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""#不带参数的普通函数def sing_dog():return True #不带参数的匿名函数f0 = lambda :True # 无参的匿名函数,在匿名函数的冒号前面无需写参数print(sing_dog())print(f0())print("*\*\*"*20)#带参数的普通函数def sub(a,b):return a - bdef add(a,b):return a + b#带参数的匿名函数f1 = lambda a,b:a-bf2 = lambda a,b:a+bprint(sub(4,2))print(add(4,2))print(f1(4,2))print(f2(4,2))'''输出结果:TrueTrue2626
'''
首先,匿名函数和普通函数对比之下,明显能感觉到匿名函数的使用能让代码更加简洁,当然匿名函数使用场景适用于比较简单的需求,对于复杂的计算,匿名函数是无法完成的;
其次,无参的匿名函数,在匿名函数的冒号前面无需写参数;
二.Python 匿名函数 lambda 调用
1.lambda 匿名函数常规使用
假如有这样一个需求:传入一个字符串,对字符串根据空格拆分,并以字符串的形式返回拆分后的结果,示例代码如下:
# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python 匿名函数 lambda.py
@Time:2021/04/11 09:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""str1 = "laowang is sing_dog "#普通函数
def get_str(str1):# 1.将字符串拆分为列表list1 = str1.split(" ")# 2.将列表转为字符串并返回字符串return "".join(list1)# 将1/2两步合并为一步完成# return "".join(str1.split(" "))print("打印原始字符串:",str1)
print("调用普通函数获取字符串拆分结果:",get_str(str1))#匿名函数
f0 = lambda a:"".join(a.split(" "))
print("调用匿名函数获取字符串拆分结果:",f0(str1))'''
输出结果:打印原始字符串: laowang is sing_dog
调用普通函数获取字符串拆分结果: laowangissing_dog
调用匿名函数获取字符串拆分结果: laowangissing_dog
'''
如果对字符串转换不太熟悉的童鞋请参考:字符串/列表/元组/字典之间的相互转换
2. lambda 匿名函数使用不定长参数
# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python 匿名函数 lambda.py
@Time:2021/04/11 09:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""# 匿名函数:通过条件表达式,返回最大值
f0 = lambda x,y: x if x> y else y
print(f0(5,10))# 匿名函数:求三个参数的乘积
f1 = lambda x,y,z: x*y*z
print(f1(1,2,3))# 缺省的匿名函数
f2 = lambda x,y=2: x+y #使用了默认值
print(f2(10)) #第二个参数为缺省参数,使用默认值2# 不定长参数的匿名函数
f3 = lambda *z:z #*z返回的是一个元祖
print(f3('hello',False))# 不定长参数的匿名函数
f4 = lambda **Arg: Arg #arg返回的是一个字典
print(f4(a=1,b=2,k="hello"))'''
输出结果:10
6
12
('hello', False)
{'a': 1, 'b': 2, 'k': 'hello'}
'''
如果对 Python 不定长参数*argc,**kargcs 不太熟悉的话,可以在看一遍这篇文章:Python 函数不定长参数 *argc,**kargcs
3. lambda 匿名函数作为参数使用
其实匿名函数作为函数参数传参和普通函数传参没什么区别,示例代码如下:
# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python 匿名函数 lambda.py
@Time:2021/04/11 09:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""def function1(a,b,):return a if a>b else b #返回最大值# 1.定义匿名函数
f0 = lambda b:b*10
# 2.匿名函数作为参数,调用普通函数
function1(100,f0(5))# 上面两行代码合并为一行
function1(100 , (lambda b:b*10)(5))
]
三.Python 匿名函数 lambda 重点总结:
- 1.匿名函数可以是无参匿名函数也可以是有参匿名函数;
- 2.匿名函数不仅可以直接当作函数调用,还能直接作为函数中的参数直接使用;
四.猜你喜欢
- Python 字符串/列表/元组/字典之间的相互转换
- Python 局部变量和全局变量
- Python type 函数和 isinstance 函数区别
- Python is 和 == 区别
- Python 可变数据类型和不可变数据类型
- Python 浅拷贝和深拷贝
- Python 递归函数
- Python sys 模块
- Python 列表 list
- Python 元组 tuple
- Python 字典 dict
- Python 条件推导式
- Python 列表推导式
- Python 字典推导式
- Python 函数声明和调用
- Python 不定长参数 *argc/**kargcs
未经允许不得转载:猿说编程 » Python 匿名函数 lambda
Python 匿名函数 lambda - Python零基础入门教程相关推荐
- python怎么输出浮点数_python 零基础入门教程第 2 章:基本数据类型 (一)
一.什么是数据类型 编程语言通过一些复杂的计算机物理底层机制,创造不同类型的数据,用来表示现实世界中的不同信息,以便于计算机更好的存储和计算. 每种编程语言都会有一些基本的数据类型用来表示现实世界中的 ...
- C/C++ getchar函数 - C语言零基础入门教程
目录 一.getchar 函数简介 1.getchar 原理 2.getchar 函数声明 3.getchar 使用场景 二.getchar 函数使用 三.getchar 函数妙用 四.猜你喜欢 零基 ...
- C语言 printf 函数 - C语言零基础入门教程
目录 一.printf 函数简介 二.C 语言格式符/占位符 三.printf 函数实战 四.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 ...
- C/C++ atol函数- C语言零基础入门教程
目录 一.ltoa 函数简介 二.int/long/unsigned long 区别 1.无符号整形(16 位系统) 2.有符号整形(16 位系统) 3.int 和 long 区别 三.atol 函数 ...
- C/C++ strtol 函数 - C语言零基础入门教程
目录 一.strtol 函数简介 二.strtol 函数函数实战 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.strtol 函数简 ...
- C/C++ strtod函数 - C语言零基础入门教程
目录 一.strtod 函数简介 二.strtod 函数函数实战 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.strtod 函数简 ...
- C/C++ ultoa函数 - C语言零基础入门教程
目录 一.ltoa 函数简介 二.int/long/unsigned long 区别 1.无符号整形(16 位系统) 2.有符号整形(16 位系统) 3.int 和 long 区别 三.ultoa 函 ...
- C/C++ ltoa函数 - C语言零基础入门教程
目录 一.ltoa 函数简介 二.int 和 long 区别 三.ltoa 函数函数实战 四.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 ...
- C/C++ atof函数 - C语言零基础入门教程
目录 一.atof 函数简介 二.atof 函数函数实战 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.atof 函数简介 在 st ...
最新文章
- 5分钟安全顾问 - 针对家庭办公室用户的简单防火墙安装
- c ibatis mysql实例_[Java教程]java程序中的ibatis连接mySql的基本实例
- OpenGL:着色器shader
- Java深入 - servlet和Spring的DispatcherServlet详解
- js实现本地上传图片及预览
- 关于《JavaScript百炼成仙》电子版,在线阅读地址~
- matlab和origin的区别,Matlab与Origin的区别
- 计算机课flash课件,初识flash动画教学课件
- 沉没成本不是成本-----通俗解释几何分布与指数分布的无记忆性?
- 艾萨克·阿西莫夫《日暮》
- 智慧消防三维地理信息应急指挥平台
- 2018年存储设备趋势:NAS 朝企业级产品发展,SSD 界面复杂化
- YoutubeAPI使用
- angr原理与实践(三)——Arbiter:一种弥合二进制程序漏洞发现中的静态和动态鸿沟
- 知识变现创业者必读——《知识变现实操手册》
- 谷歌Google搜索引擎对302跳转会不会传递权重?
- 用PHP建设网站的优缺点
- 关于ue4播放(play)后画质不清晰的问题
- 算法-斐波那契数列 java
- crackme例子2
热门文章
- 五个问题,三大策略,手把手教你定制App性能监控方案
- 阿里云飞天洛神2.0:高性能网络软硬一体化技术实践
- iOS13 一次Crash定位 - 被释放的NSURL.host
- RabbitMQ 的延时队列和镜像队列原理与实战
- AI评委引热议,阿里巴巴表示:AI不会取代工程师
- 如何基于阿里云搭建适合初创企业的轻量级架构?
- 阿里云DTS大幅降价,低至400元即可获得实现秒级延迟的数据传输服务
- 阿里敏捷教练何勉:论精益思想及精益产品开发实践体系
- 阿里云MaxCompute,用计算力让数据发声
- 承担集团数万应用、研发人员日常工作,阿里持续交付平台的设计、迭代之道... 1