Python中lambda的基本用法

Python-- Lambda

  •    Lambda 表达式是一个匿名函数,Lambda表达式基于数学中的λ演算得名(可见数学是多么强大!),直接对应于其中的lambda抽象,是一个匿名函数,即没有函数名的函数。
  • Lambda表达式是Python中一类特殊的定义函数的形式,使用它可以定义一个匿名函数。与其它语言不同(Lambda 表达式还可以应用在C#,C++,Java),Python的Lambda表达式的函数体只能有单独的一条语句,也就是返回值表达式语句。

平时我们定义函数会使用def来定义,那么当你想使用一个函数,并且只是临时使用它一下,就没有必要非得给它起一个名字,因此lambda表达式派上了用处,下面将以几个例子进行说明:

1.sorted:排序函数

sorted函数可以直接对list进行排序,也可以接收一个key函数来实现自定义的排序,例如按照绝对值进行排序如下图:

sorted([1,-2,0,5],key=abs)

那么对于自定义的函数key,我们就可以使用Lambda表达式来定义自己想要的方式了。我们就可以将上图代码改为:

sorted([1,-2,0,5],key=lambda x:abs(x))

2.filter:筛选函数

filter函数用来对序列进行筛选,filter(function,list)包含两个参数,第一个参数为函数,第二个参数为列表,function作用于list中每一个元素。用法如下:

print(list(filter(lambda x: x > 3 , [1, 2, 3, 4, 5])))

在这里,我们在第一个参数位置使用了匿名函数,用来筛选大于3的数,匿名函数的优点在这就体现了出来,不用麻烦的去定义一个全新的函数,十分方便。

3.map():根据提供的函数对指定序列做映射

map(function,list)至少包含两个参数,第一个参数为函数,第二个参数为列表(可以为多个序列),函数参数依次对序列进行映射。用法如下:

def square(x):
	return x ** 2
map_1 = map(square,[1,2,3,4])
map_2 = map(lambda x: x ** 2,[1,2,3,4])
print('map_1=',list(map_1))
print('map_2=',list(map_2))

运行结果:

map_1= [1, 4, 9, 16]
map_2= [1, 4, 9, 16]

可以看出匿名函数的作用与square的作用相同,是不是十分方便呢?

4.从一个函数中返回;

def add():
	return lambda x : x + 1
r = add()
print(r(4))

可知输出结果为5,常用来实现函数装饰器(Wrapper)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

带鱼工作室

感谢您的支持!

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

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

打赏作者

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

抵扣说明:

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

余额充值