• 如果⼀个函数有⼀个返回值,并且只有⼀句代码,可以使⽤ lambda简化。

lambda语法:

lambda 参数列表 : 表达式
注意:
  • lambda表达式的参数可有可⽆,函数的参数在lambda表达式中完全适⽤。
  • lambda表达式能接收任何数量的参数但只能返回⼀个表达式的值。
示例代码:
# 函数
def fn1():return 200print(fn1)  # 【打印的为地址】<function fn1 at 0x000001B2307F4E18>
print(fn1())  # 200
# lambda表达式
fn2 = lambda: 100
print(fn2)  # 【打印的为地址】<function <lambda> at 0x000001B230B6E840>
print(fn2())  # 200
注意:直接打印lambda表达式,输出的是此lambda的内存地址

1. 示例:计算a + b

1.1 函数实现

def add(a, b):return a + bresult = add(1, 2)
print(result)
思考:需求简单,是否代码多?

1.2 lambda实现

fn1 = lambda a, b: a + b
print(fn1(1, 2))

2. lambda的参数形式

2.1.⽆参数

fn1 = lambda: 100
print(fn1())

2.2.⼀个参数

fn1 = lambda a: a
print(fn1('hello world'))

2.3.默认参数

fn1 = lambda a, b, c=100: a + b + c
print(fn1(10, 20))

2.4.可变参数:*args

fn1 = lambda *args: args
print(fn1(10, 20, 30))  # 【输出结果为:(10,20,30)】
注意:这⾥的可变参数传⼊到lambda之后,返回值为元组。

2.5.可变参数:**kwargs

fn1 = lambda **kwargs: kwargs
print(fn1(name='python', age=20))  # 【输出结果为:{'name':'python','age':20}】

3. lambda的应⽤

3.1. 带判断的lambda

fn1 = lambda a, b: a if a > b else b
print(fn1(1000, 500))

3.2. 列表数据按字典key的值排序

students = [{'name': 'TOM', 'age': 20},{'name': 'ROSE', 'age': 19},{'name': 'Jack', 'age': 22}]
# 按name值升序排列
students.sort(key=lambda x: x['name'])  # 【sort修改的是原列表的数据】
print(students)
# 按name值降序排列
students.sort(key=lambda x: x['name'], reverse=True)
print(students)
# 按age值升序排列
students.sort(key=lambda x: x['age'])
print(students)

运行结果:

python中lambda 表达式(无参数、一个参数、默认参数、可变参数(*args、**kwargs)、带判断的lambda、列表使用lambda)相关推荐

  1. Matplotlib使用scatter函数在Python中绘制气泡图(bubble plot)、通过size参数指定数据点的大小、自定义不同分组的气泡的色彩

    Matplotlib使用scatter函数在Python中绘制气泡图(bubble plot).通过size参数指定数据点的大小.自定义不同分组的气泡的色彩 目录

  2. Matplotlib使用scatter函数在Python中绘制气泡图(bubble plot)、通过size参数指定数据点的大小

    Matplotlib使用scatter函数在Python中绘制气泡图(bubble plot).通过size参数指定数据点的大小 目录

  3. python中translate的用法_如何在python中利用translate模块实现一个翻译功能

    如何在python中利用translate模块实现一个翻译功能 发布时间:2020-12-18 14:16:00 来源:亿速云 阅读:86 这期内容当中小编将会给大家带来有关如何在python中利用t ...

  4. python可变参数的定义_Python函数可变参数

    Python函数可变参数教程 在 Python 中函数的可变参数又被称为不定长参数,Python 中的可变参数不是必须是函数的最后一个参数,但如果不是函数的最后一个参数,那么普通参数必须使用 Pyth ...

  5. ​Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数

    ​Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数 7.4.4  为外部参数设置默认值 开发者也可以对外部参数设置默认值.这时,调用的时候,也可以省略参数传递本文选自Swift ...

  6. python导入其他py文件-Python中py文件引用另一个py文件变量的方法

    最近自己初学Python,在编程是遇到一个问题就是,怎样在一个py文件中使用另一个py文件中变量,问题如下: demo1代码 import requests r = requests.get(&quo ...

  7. python怎么调用另一个py文件的变量,Python中py文件引用另一个py文件变量的方法

    Python中py文件引用另一个py文件变量的方法 最近自己初学Python,在编程是遇到一个问题就是,怎样在一个py文件中使用另一个py文件中变量,问题如下: demo1代码 import requ ...

  8. python中的类及self详解_Python类class参数self原理解析

    1.self只有在类的方法中才会有,其他函数或方法是不必带self的. 2.在调用时不必传入相应的参数. 3.在类的方法中(如__init__),第一参数永远是self,表示创建的类实例本身,而不是类 ...

  9. python中的choices函数_用choices给命令行参数设置范围

    argparse模块的add_argument函数,有一个choices参数,我们可以通过此参数来给命令行参数的取值设置一个任意的范围.在命令行参数取值范围小而且有限的情况下,此方法还是很方便的. 下 ...

  10. python函数如何实现可变参数_python之函数定义可变参数(任意数量参数)

    原博文 2020-05-23 11:49 − python中函数可以定义任意数量的参数,即可变参数. 比如: def fun(*args): print args 在可变参数的名字前面加一个*号,即可 ...

最新文章

  1. Java 使用ZeroMQ 2.2 进行通信编程
  2. cpythonjava解释xml_详解python使用lxml操作xml格式文件
  3. 【知乎】怎么成为一个优秀的程序员,而不是一个优秀的码农?
  4. Ubuntu 安装Oprofile
  5. mac安装jad反编译工具
  6. 【NLP】cs224n课程笔记
  7. 今年尾牙我们部门拍的搞笑短片,讲述项目开发的事~
  8. 也谈谈内卷化、996和程序员的发展
  9. PS 金属质感文字制作
  10. mysql中year函数算年龄_MySQL中的YEAR函数
  11. excel编程系列基础:认识VBA的编辑器VBE
  12. python颜色代码棕色_图表的基本配色方法
  13. 23种设计模式-个人笔记(三)
  14. 结合方式c语言,程序设计C语言与数据结构相结合的教学模式探索
  15. python下载文件并改名_用 Python 给下载的 B 站视频文件批量改名
  16. 微信退款关于证书的使用
  17. window下vmware使用无线网卡nat的方式上网
  18. 读取和博客可视化分析
  19. GOM和GEE引擎黑屏不显示界面,装备地图怪物的解决方法
  20. (转)PC机使用网络调试助手获取onenet的数据(https://blog.csdn.net/qq_29219435/article/details/78480872)

热门文章

  1. 360数科发布2020全年财报:全年收入上涨47.1%,科技为运营效率提供第一动力
  2. 针对《评人工智能如何走向新阶段》一文,继续发布国内外的跟贴留言第二部557-561条如下
  3. 机器学习中的线性回归,你理解多少?
  4. 《评人工智能如何走向新阶段》后记(再续1)
  5. 满12万送Mate 30 Pro?华为云“双十一”20+款明星产品齐上线
  6. 新框架ES-MAML:基于进化策略、简易的元学习方法
  7. AI一分钟 | 刚爆Python将进入高考,AI就已强势进入公务员国考试卷;报告称1/4男性更喜欢跟机器人谈恋爱,真的吗?
  8. Spring Boot 中使用@Async实现异步调用,加速任务执行!
  9. 跟我学Springboot开发后端管理系统7:Matrxi-Web权限设计
  10. 这是我读过写得最好的【秒杀系统架构】分析与实战!