python中的匿名函数——lambda()函数

本文介绍了Python中的lambda函数,它用于创建匿名函数,简化代码。同时,通过示例展示了如何使用lambda函数配合filter()和map()进行数据处理。filter()函数用于根据条件筛选列表元素,map()函数则用于对列表元素进行特定操作。文章通过将加法和减法函数用lambda表达式重写,进一步说明了lambda函数的简洁性和实用性。
摘要由CSDN通过智能技术生成

python的函数中最常见的是用def关键词定义的有名称的函数,例如all()函数,all就是其函数名,除此之外还可以定义匿名函数,所谓匿名函数,就是没有名称的函数,用lambda关键字来定义,其语法如下:

lambda 参数列表: 函数体

其中,参数列表与有名称函数的参数列表是一样的,只是不需要用小括号括起来;:为英文半角冒号;函数体只有一个语句,不能包含多条语句,且会将该语句计算的结果返回给lambda()函数。
lambda()函数与常见的有名称函数的不同点是,lambda()函数不需要return语句返回;相同点是,都属于函数类型,例如add()和sub()等一条语句就可以实现其功能的函数都可以被lambda()函数替代:

# 加法函数
def add(a,b):
	return a+b
# 减法函数
def sub(a,b):
	return a-b

# 加减法函数
def AddOrSub (x):
	if x == '+':
		return lambda a, b: (a+ b) # 替代add()函数
	else:
		return lambda a, b: (a- b) # 替代sub()函数
f1 = AddOrSub('+')
f2 = AddOrSub('-')
print("10 + 5 = {0}".format(f1(10,5)))
print("10 - 5 = {0}".format(f2(10,5)))

lambda()函数可以减少代码量,还常常与filter()和map()等函数配合使用,先介绍一下filter()函数和map()函数的使用示例:

data = [25, 17, 38, 90, 80, 76, 43]

# 提供过滤条件的filter()函数
def f(x):
	return x > 30 #找出大于30的元素
filtered = filter(f, data)
data1 = list(filtered) # 转换为列表
print(data1)

# 提供变换规则的map()函数
def m(x):
	return x * 10 # 变换规则乘以10
mapped = map(m ,data)
data2 = list(mapped) # 转换为列表
print(data2)

将上述代码使用lambda()函数代替:

data = [25, 17, 38, 90, 80, 76, 43]

filtered = filter(lambda x: (x> 30), data)
data1 = list(filtered)
print(data1)

mapped = map(lambda x: (x* 10), data)
data2 = list(mapped) 
print(data2)
  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Happy_Newmoon

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

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

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

打赏作者

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

抵扣说明:

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

余额充值