【Python】—— lambda表达式

目录

(一)应用场景

(二)lambda 语法

(三)示例分析

(四)lambda参数形式

4.1 无参数

4.2 一个参数

4.3 默认参数

4.4 可变参数 :*args

4.5 可变参数 :**kargs

(五)lambda的应用

5.1 带判断的lambda

5.2 列表数据按照字典key的值排序


(一)应用场景

在Python中,lambda是一个关键字,用于定义小的匿名函数。

这些函数也称为“lambda函数”或“lambda表达式”。

lambda函数主要用于需要一个函数作为参数的函数式编程场景,或者需要定义一个简单的函数而不需要使用def语句。

lambda 函数特点:

  • lambda 函数是匿名的,它们没有函数名称,只能通过赋值给变量或作为参数传递给其他函数来使用。
  • lambda 函数通常只包含一行代码,这使得它们适用于编写简单的函数。

(二)lambda 语法

lambda arguments: expression  
  • lambda 是 Python 的关键字,用于定义 lambda 函数。
  • arguments` 是函数的参数列表,和`def`中定义函数时一样,只是没有变量名。  
  • expression` 是一个表达式,这个表达式的值会被返回。  

(三)示例分析

示例:计算 a + b

  • 方法一:函数实现
def add(a,b):
    return a +b
result = add(1,2)
print(result)
  • 方法二:lambda实现 
res = lambda a,b : a + b
print(res(1,2))

(四)lambda参数形式

4.1 无参数

  • 以下的 lambda 函数没有参数:
f = lambda: 100
print(f())  # 输出: 100

4.2 一个参数

  •  以下的 lambda 函数有一个参数:
fn1 = lambda a:a
print(fn1('hello world'))   # 输出: hello world

又或如下:

x = lambda a : a + 10
print(x(5))

4.3 默认参数

  •   以下的 lambda 函数默认参数:
fn1 = lambda a,b,c=100: a + b + c
print(fn1(10,20))    # 输出: 130

4.4 可变参数 :*args

在Python中,lambda 函数通常用于定义简单的匿名函数

fn2 = lambda *args : args
print(fn2(10))       # 输出:(10,)
print(fn2(10,20))    # 输出:(10, 20)
print(fn2(10,20,30)) # 输出:(10, 20, 30)

4.5 可变参数 :**kargs

**kargs允许你传入任意数量的关键字参数到一个函数中,并将这些参数存储在一个字典中。

fn3 = lambda **kwargs : kwargs
print(fn3(name = 'python'))         # 输出:{'name': 'python'}
print(fn3(name = 'python',age = 20))# 输出:{'name': 'python', 'age': 20}

(五)lambda的应用

5.1 带判断的lambda

在Python中,lambda表达式用于定义简单的匿名函数。虽然 lambda通常用于执行简单的操作,但它也可以包含基本的判断逻辑,比如使用条件表达式(也称为三元运算符)。

条件表达式在Python中的语法是 value_if_true if condition else value_if_false。你可以在 lambda 函数中使用这种语法来执行基于条件的判断。

# 定义一个lambda函数,如果x大于y则返回x,否则返回y
fn1 = lambda x,y: x if x > y else y

# 测试lambda函数
print(fn1(5,10))  # 输出: 10
print(fn1(7,5))  # 输出: 7
print(fn1(-5,0))  # 输出: 0

5.2 列表数据按照字典key的值排序

在Python中,lambda函数常常与sorted函数一起使用,以对列表中的元素进行自定义排序。假设你有一个包含字典的列表,并且你想根据字典中的某个键(key)的值来进行排序。

  • 首先,创建一个包含字典的列表: 
data = [  
    {'name': 'Alice', 'age': 25},  
    {'name': 'Bob', 'age': 20},  
    {'name': 'Charlie', 'age': 22},  
    {'name': 'David', 'age': 23},  
]
  •  如果想根据'age'键的值进行升序排序,可以这样做:
data.sort(key=lambda x : x['age'])
print(data)
  • 输出将会是:
[
    {'name': 'Bob', 'age': 20}, 
    {'name': 'Charlie', 'age': 22}, 
    {'name': 'David', 'age': 23}, 
    {'name': 'Alice', 'age': 25}
]
  • 如果想进行降序排序,你可以使用reversed函数或者传递reverse=Truesorted函数: 

  • 13
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
说明:解压后要注意把文件属性修改一下,解锁即可用 目录表 前言 本书的读者 本书的由来 本书目前的状况 官方网站 约定条款 欢迎给我反馈 值得思考的一些东西 1. 介绍 简介 Python的特色 概括 为什么不使用Perl? 程序员的话 2. 安装Python Linux和BSD用户 Windows®用户 概括 3. 最初的步骤 简介 使用带提示符的解释器 挑选一个编辑器 使用源文件 输出 它如何工作 可执行的Python程序 获取帮助 概括 4. 基本概念 字面意义上的常量 数 字符串 变量 标识符的命名 数据类型 对象 输出 它如何工作 逻辑行与物理行 缩进 概括 5. 运算符与表达式 简介 运算符 运算符优先级 计算顺序 结合规律 表达式 使用表达式 概括 6. 控制流 简介 if语句 使用if语句 它如何工作 while语句 使用while语句 for循环 使用for语句 break语句 使用break语句 continue语句 使用continue语句 概括 7. 函数 简介 定义函数 函数形参 使用函数形参 局部变量 使用局部变量 使用global语句 默认参数值 使用默认参数值 关键参数 使用关键参数 return语句 使用字面意义上的语句 DocStrings 使用DocStrings 概括 8. 模块 简介 使用sys模块 字节编译的.pyc文件 from..import语句 模块的__name__ 使用模块的__name__ 制造你自己的模块 创建你自己的模块 from..import dir()函数 使用dir函数 概括 9. 数据结构 简介 列表 对象与类的快速入门 使用列表 元组 使用元组 元组与打印语句 字典 使用字典 序列 使用序列 参考 对象与参考 更多字符串的内容 字符串的方法 概括 10. 解决问题——编写一个Python脚本 问题 解决方案 版本一 版本二 版本三 版本四 进一步优化 软件开发过程 概括 11. 面向对象的编程 简介 self 类 创建一个类 对象的方法 使用对象的方法 __init__方法 使用__init__方法 类与对象的变量 使用类与对象的变量 继承 使用继承 概括 12. 输入/输出 文件 使用文件 储存器 储存与取储存 概括 13. 异常 错误 try..except 处理异常 引发异常 如何引发异常 try..finally 使用finally 概括 14. Python标准库 简介 sys模块 命令行参数 更多sys的内容 os模块 概括 15. 更多Python的内容 特殊的方法 单语句块 列表综合 使用列表综合 在函数中接收元组和列表 lambda形式 使用lambda形式 exec和eval语句 assert语句 repr函数 概括 16. 接下来学习什么? 图形软件 GUI工具概括 探索更多内容 概括 A. 自由/开放源码软件(FLOSS) B. 关于本书 后记 关于作者 关于译者 关于简体中文译本 C. 修订记录 时间表 术语表 表格 5.1 运算符与它们的用法 5.2 运算符优先级 15.1 一些特殊的方法 例子 3.1 使用带提示符的Python解释器 3.2 使用源文件 4.1 使用变量和字面意义上的常量 5.1 使用表达式 6.1 使用if语句 6.2 使用while语句 6.3 使用for语句 6.4 使用break语句 6.5 使用continue语句 7.1 定义函数 7.2 使用函数形参 7.3 使用局部变量 7.4 使用global语句 7.5 使用默认参数值 7.6 使用关键参数 7.7

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

起飞的风筝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值