Python26 Lambda表达式

1.什么是lambda表达式

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

以下是 lambdadef 之间的一些主要区别:

  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 + y

print(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
'''

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

相关推荐
好看资源平台29 分钟前
网络爬虫——综合实战项目:多平台房源信息采集与分析系统
爬虫·python
进击的六角龙1 小时前
深入浅出:使用Python调用API实现智能天气预报
开发语言·python
檀越剑指大厂1 小时前
【Python系列】浅析 Python 中的字典更新与应用场景
开发语言·python
湫ccc1 小时前
Python简介以及解释器安装(保姆级教学)
开发语言·python
孤独且没人爱的纸鹤1 小时前
【深度学习】:从人工神经网络的基础原理到循环神经网络的先进技术,跨越智能算法的关键发展阶段及其未来趋势,探索技术进步与应用挑战
人工智能·python·深度学习·机器学习·ai
羊小猪~~1 小时前
tensorflow案例7--数据增强与测试集, 训练集, 验证集的构建
人工智能·python·深度学习·机器学习·cnn·tensorflow·neo4j
lzhlizihang1 小时前
python如何使用spark操作hive
hive·python·spark
q0_0p1 小时前
牛客小白月赛105 (Python题解) A~E
python·牛客
极客代码1 小时前
【Python TensorFlow】进阶指南(续篇三)
开发语言·人工智能·python·深度学习·tensorflow
庞传奇1 小时前
TensorFlow 的基本概念和使用场景
人工智能·python·tensorflow