python语法糖 lambda函数的简单使用和应用方式

这篇博客介绍了Python中的lambda函数用法,包括作为简短的匿名函数直接赋值、与其他内置函数如filter、map、sorted和reduce结合使用,以及嵌套在普通函数中。lambda函数提供了一种快速定义单行表达式函数的方式,常用于简化代码和提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

lambda函数的用法:

lambda的形式

lambda的形式是唯一的就像是下面这样子:

lambda arugment_list:expression
‘‘‘
语法中的argument_list是参数列表,它的结构和python中的function的参数列表是一样的,例如:
a,b a=1,b=2 *args **kargs
语法中的expression是一个关于参数的表达式并且:
表达式中出现的参数需要在argument_list中有定义 ,并且表达式只能是单行的,如下是一些合法的表达式
1
None
a+b
sum(a)
1 if a>10 else 0
’’’

那么lambda有什么用处呢?

  • 1.直接赋予一个变量,然后再像函数一样子的调用:
f = lambda x,y,z : x*y*z
f(1,2,3) # >>3
当然也可以直接在lambda后面直接传入参数如
(lambda x,y,z : x*y*z)(1,2,3)	# >>3 这样子调用的结果和上面的是一样子的
  • 2.将lambda 作为一个变量传入到其他函数的参数从而能够结合一些map,filter,sorted,reduce等一些python内置函数或者自己定义的函数来使用
filter(lambda x:x%3==0,[1,2,3,4,5,6])	# >>[3,6]

squares = list(map(lambda x:x**2,range(5))) # >>返回一个平方后的列表  注意map返回的是一个可以迭代的map类型的对象

a =  [(a’,3),('b':2),('c',1)]
sorted(a,key = lambda x : x[0])	# >> 输出一个按照元组第一个元素排序后的列表

reduce(func,iterable[,initializer])函数也是一个神奇的函数,其中的func一般有两个参数,并且在可迭代的对象中先对前两个元素进行计算并且计算结果在和第三个元素进行计算
from functiontools import reduce
reduce(lambda x,y : '{},{}'.format(x,y),[1,2,3,4,5,6,7,8,9]		# 就可以输出‘1,2,3,4,5,6,7,8,9’
  • 3.嵌套使用把lambda函数嵌套进入普通函数中lambda函数本身作为返回的值,当然lambda也可以嵌套lambda:
def increment(n):
	return lambda x:x+=n
f = increment(6)
f(4)									# >> 10

(lambda a : a*(lambda b: b*b)(a))(2)   # 多重嵌套可以实现 2**3  
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值