当前位置: 首页 > news >正文

Python26 Lambda表达式

图片

1.什么是lambda表达式

lambda 是 Python 中的一个关键字,用于定义简单的匿名函数。与 def 关键字定义的标准函数不同,lambda 函数主要用于需要一个函数对象作为参数的简短操作。lambda 函数的设计哲学是简洁,因此它只能包含一条表达式,而不能是复杂的代码块。

以下是 lambda 和 def 之间的一些主要区别:

  1. 匿名性

    • lambda 函数是匿名的,它们没有函数名

    • def 定义的函数有明确的名称

  2. 复杂性

    • lambda 函数只能包含一条表达式,不能有多个语句或复杂的控制流(如循环或条件判断)

    • def 定义的函数可以包含多条语句和复杂的控制流

  3. 用途

    • lambda 通常用于需要简单函数作为参数的场合,如 map()filter()sorted(), 或作为回调函数

    • def 用于定义任何类型的函数,无论其复杂性如何

  4. 语法

    • lambda 的语法是 lambda arguments: expression

    • def 的语法是 def function_name(arguments): 然后是函数体

例如,使用 lambda 定义一个计算两个数之和的匿名函数:

add = lambda x, y: x + y
print(add(3, 4))  # 输出 7

与使用 def 定义相同的函数:

def add_with_def(x, y):return x + yprint(add_with_def(3, 4))  # 输出 7

lambda 表达式的作用

  • lambda 表达式提供了一种在代码中快速定义小函数的方式,而无需为其命名或定义完整的函数体。

  • 它允许将函数作为其他函数的参数,或者作为数据结构(如列表或字典)中的元素进行传递。

  • 由于其简洁性,lambda 表达式特别适用于需要一行代码即可解决的简单任务。

由于 lambda 自身的限制,对于更复杂的任务,应该使用 def 来定义函数。

2.lambda表达式的使用

除上述用法外,lambda也可以定义在def函数中 。这里定义了一个action函数,返回了一个lambda表达式。其中lambda表达式获取到了上层def作用域的变量名x的值。a是action函数的返回值,a(22),即是调用了action返回的lambda表达式。

def action(x):return lambda y:x+y
a=action(6)
print(a(22))# 输出:
'''
28
'''

也可以把def直接写成lambda形式。如下:

b=lambda x:lambda y:x+y
a=b(3)
a(2)# 输出:
'''
5
'''

使用内置函数map()进行操作如下:

# 内置函数
# 1.map
# 遍历序列,对序列中每个元素进行操作,最终获取新的序列
li=[11,22,33]
new_list=map(lambda a:a+100,li)
for i in new_list:print(i)# 输出:
'''
111
122
133
'''

使用内置函数filter()进行操作如下:

# 2.filter
# 对序列中的元素进行筛选,最终获取符合条件的序列
li=[11,22,33]
new_list=filter(lambda arg:arg>22,li)
for i in new_list:print(i)# 输出:
'''
33
'''

以上内容总结自网络,如有帮助欢迎转发,我们下次再见!

http://www.lryc.cn/news/385304.html

相关文章:

  • 2024年数据、自动化与智能计算国际学术会议(ICDAIC 2024)
  • cuda 学习笔记4
  • ZSWatch 开源项目介绍
  • Ansible-综合练习-生产案例
  • lombok关于构造器的注解的坑【避坑】
  • 指针并不是用来存储数据的,而是用来存储数据在内存中地址(内存操作/函数指针/指针函数)
  • iso21434认证的意义
  • 分页处理封装+分页查询题目列表
  • 每天一个项目管理概念之WBS
  • linux安装mysql8并查看密码
  • [渗透测试] 任意文件读取漏洞
  • sudo: /etc/init.d/ssh: command not found
  • 秋招倒计时?到底需要准备到什么程度?
  • 6.26.4.1 基于交叉视角变换的未配准医学图像多视角分析
  • 62.指针和二维数组(2)
  • 学生表的DDL和DML
  • 视觉灵感的探索和分享平台
  • 使用 Reqable 在 MuMu 模拟器进行App抓包(https)
  • RedisConnectionException: Unable to connect to localhost/<unresolved>:6379
  • poi word写入图片
  • 【监控】2.Grafana的安装
  • Java入门教程(上)
  • 【Linux】Linux下使用套接字进行网络编程
  • 强化学习-Q-learning、SARSA和PPO等算法
  • HarmonyOS SDK助力鸿蒙原生应用“易感知、易理解、易操作”
  • Java基础入门day72
  • 文本编辑命令和正则表达式
  • 云手机群控功能讲解
  • gdb用法
  • 聊一聊UDF/UDTF/UDAF是什么,开发要点及如何使用?