目录

  • 一.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.匿名函数不仅可以直接当作函数调用,还能直接作为函数中的参数直接使用;

四.猜你喜欢

  1. Python 字符串/列表/元组/字典之间的相互转换
  2. Python 局部变量和全局变量
  3. Python type 函数和 isinstance 函数区别
  4. Python is 和 == 区别
  5. Python 可变数据类型和不可变数据类型
  6. Python 浅拷贝和深拷贝
  7. Python 递归函数
  8. Python sys 模块
  9. Python 列表 list
  10. Python 元组 tuple
  11. Python 字典 dict
  12. Python 条件推导式
  13. Python 列表推导式
  14. Python 字典推导式
  15. Python 函数声明和调用
  16. Python 不定长参数 *argc/**kargcs

未经允许不得转载:猿说编程 » Python 匿名函数 lambda

Python 匿名函数 lambda - Python零基础入门教程相关推荐

  1. python怎么输出浮点数_python 零基础入门教程第 2 章:基本数据类型 (一)

    一.什么是数据类型 编程语言通过一些复杂的计算机物理底层机制,创造不同类型的数据,用来表示现实世界中的不同信息,以便于计算机更好的存储和计算. 每种编程语言都会有一些基本的数据类型用来表示现实世界中的 ...

  2. C/C++ getchar函数 - C语言零基础入门教程

    目录 一.getchar 函数简介 1.getchar 原理 2.getchar 函数声明 3.getchar 使用场景 二.getchar 函数使用 三.getchar 函数妙用 四.猜你喜欢 零基 ...

  3. C语言 printf 函数 - C语言零基础入门教程

    目录 一.printf 函数简介 二.C 语言格式符/占位符 三.printf 函数实战 四.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 ...

  4. C/C++ atol函数- C语言零基础入门教程

    目录 一.ltoa 函数简介 二.int/long/unsigned long 区别 1.无符号整形(16 位系统) 2.有符号整形(16 位系统) 3.int 和 long 区别 三.atol 函数 ...

  5. C/C++ strtol 函数 - C语言零基础入门教程

    目录 一.strtol 函数简介 二.strtol 函数函数实战 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.strtol 函数简 ...

  6. C/C++ strtod函数 - C语言零基础入门教程

    目录 一.strtod 函数简介 二.strtod 函数函数实战 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.strtod 函数简 ...

  7. C/C++ ultoa函数 - C语言零基础入门教程

    目录 一.ltoa 函数简介 二.int/long/unsigned long 区别 1.无符号整形(16 位系统) 2.有符号整形(16 位系统) 3.int 和 long 区别 三.ultoa 函 ...

  8. C/C++ ltoa函数 - C语言零基础入门教程

    目录 一.ltoa 函数简介 二.int 和 long 区别 三.ltoa 函数函数实战 四.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 ...

  9. C/C++ atof函数 - C语言零基础入门教程

    目录 一.atof 函数简介 二.atof 函数函数实战 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.atof 函数简介 在 st ...

最新文章

  1. 5分钟安全顾问 - 针对家庭办公室用户的简单防火墙安装
  2. c ibatis mysql实例_[Java教程]java程序中的ibatis连接mySql的基本实例
  3. OpenGL:着色器shader
  4. Java深入 - servlet和Spring的DispatcherServlet详解
  5. js实现本地上传图片及预览
  6. 关于《JavaScript百炼成仙》电子版,在线阅读地址~
  7. matlab和origin的区别,Matlab与Origin的区别
  8. 计算机课flash课件,初识flash动画教学课件
  9. 沉没成本不是成本-----通俗解释几何分布与指数分布的无记忆性?
  10. 艾萨克·阿西莫夫《日暮》
  11. 智慧消防三维地理信息应急指挥平台
  12. 2018年存储设备趋势:NAS 朝企业级产品发展,SSD 界面复杂化
  13. YoutubeAPI使用
  14. angr原理与实践(三)——Arbiter:一种弥合二进制程序漏洞发现中的静态和动态鸿沟
  15. 知识变现创业者必读——《知识变现实操手册》
  16. 谷歌Google搜索引擎对302跳转会不会传递权重?
  17. 用PHP建设网站的优缺点
  18. 关于ue4播放(play)后画质不清晰的问题
  19. 算法-斐波那契数列 java
  20. crackme例子2

热门文章

  1. 五个问题,三大策略,手把手教你定制App性能监控方案
  2. 阿里云飞天洛神2.0:高性能网络软硬一体化技术实践
  3. iOS13 一次Crash定位 - 被释放的NSURL.host
  4. RabbitMQ 的延时队列和镜像队列原理与实战
  5. AI评委引热议,阿里巴巴表示:AI不会取代工程师
  6. 如何基于阿里云搭建适合初创企业的轻量级架构?
  7. 阿里云DTS大幅降价,低至400元即可获得实现秒级延迟的数据传输服务
  8. 阿里敏捷教练何勉:论精益思想及精益产品开发实践体系
  9. 阿里云MaxCompute,用计算力让数据发声
  10. 承担集团数万应用、研发人员日常工作,阿里持续交付平台的设计、迭代之道... 1