【python】Lambda的使用方法

Lambda用法简介

Lambda的简介

先来看一下两段代码,可以看出这两段代码的效果是一致的。可以简略的看出lambda的作用和函数类似,传入了x,y这两个参数后会返回(x+y)的值。

在这里插入图片描述

其实lambda表达式又名匿名函数,常用来表示内部仅包含 1 行表达式的函数。如果一个函数的函数体仅有 1 行表达式,则该函数就可以用 lambda 表达式来代替。
语法如下:

	name = lambda [list] : 表达式
	#其中list是参数列表

其相当于普通函数的:

def name(list):
	return 表达式
name(list)

Lambda与普通函数的区别

  • lambda是一个匿名函数,普通函数必须要有一个名字,而lambda可以没有。
  • lambda通常适用于编写一个简单的函数。所以在lambda表达式中不可以使用 if else while return语句
  • lambda是一个单个的表达式而不是一个代码块,而函数是一个代码块,可进行复杂的计算

使用Lambda的好处

  • 提高代码简洁性
  • 对于一些不需要多次使用的函数,lambda用完及时释放,提高程序的性能

Lambda常用的场景

filter函数

#filter过滤器,用于返回iterable中满足function过滤条件的元素
filter(function, iterable)

此时lambda函数用于指定过滤列表元素的条件。

如下例子,过滤出[1,2,3]中能被三整除的元素

filter(lambda x: x % 3 == 0, [1, 2, 3])

sorted函数

sorted(list,key="排序规则")

此时lambda函数用于指定对列表中所有元素进行排序的准则。

如下例子,在[1,2,3,4,5]序列中,以和5的距离从小到大进行排序

sorted([1, 2, 3, 4, 59], key=lambda x: abs(5-x))
#abs函数---求绝对值

map函数

#第一个参数 function 以参数序列中的每一个元素调用 function 函数,
#返回包含每次 function 函数返回值的新列表。
map(function, iterable)

此时lambda函数用于指定对列表中每一个元素的共同操作。

如下例子,将[1,2,3]元素分别加1返回结果[2,3,4]

map(lambda x: x+1, [1, 2,3])

reduce函数

#用传给 reduce 中的函数 function(有两个参数)
#先对集合中的第 1、2 个元素进行操作,
#得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
reduce(function, iterable)

此时lambda函数用于指定列表中两两相邻元素的结合条件。

如下例子表示求[1,2,3,4,5]的累加和

reduce(lambda x,y:x+y,[1,2,3,4,5])



参考:

http://c.biancheng.net/view/2262.html
Python:一个 lambda 表达式引起的思考

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值