python匿名函数Lambda表达式及其用法

什么是lambda表达式

我们通常在写代码的时候会写很多很多的函数,这些函数往往要用到def…return等多行代码,但实际有用的代码很少很少,那么lambda表达式就是这样一种简写函数的常用的措施。

一个例子
定义一个函数

def f(x,y):
	return x+y
print(f(2,3))

打印出来的结果是5;
这个函数是一个求和的函数,使用lambda表达式可以是这样:

f = lambda x,y:x+y
print(f(2,3))

打印出来的结果也是5;
可以看出二者的区别,lambda表达式没有defreturn,lambda的输入就是“:”前的参数,输出就是“:”后的表达式

排序中的lambda表达式
定义一个用于排序的函数

data = [['勒布朗-詹姆斯',‘洛杉矶湖人’,34],
			['扬尼斯-阿德托昆博','密尔沃基雄鹿队',24],
			['迈克尔-乔丹','芝加哥公牛队',56]]
def solution(people):
	return people[2]
data.sort(key = solution)
print(data)

打印出来的结果是:

[['扬尼斯-阿德托昆博', '密尔沃基雄鹿队', 24], ['勒布朗-詹姆斯', '洛杉矶湖人', 34], ['迈克尔-乔丹', '芝加哥公牛队', 56]]

这个排序就是将data数组按照元素的第三个值进行从大到的排序;
而使用lambda表达式就是这样:

data = [['勒布朗-詹姆斯',‘洛杉矶湖人’,34],
			['扬尼斯-阿德托昆博','密尔沃基雄鹿队',24],
			['迈克尔-乔丹','芝加哥公牛队',56]]
data.sort(key = lambda people:people[2])
print(data)

上面的代码打印出来的结果同样也是:

[['扬尼斯-阿德托昆博', '密尔沃基雄鹿队', 24], ['勒布朗-詹姆斯', '洛杉矶湖人', 34], ['迈克尔-乔丹', '芝加哥公牛队', 56]]

混合函数中的lambda表达式
定义一个用于求二元二次方程的函数:

def f(a,b,c):
	return lambda x:a*x*x+b*x+c
print(f(1,2,3)(3))

该程序打印出来的结果是:18
可以看出当参数过多的时候可以在函数体内定义lambda表达式,传入lambda表达式的参数与传入函数的参数是分开的,这样有利于区分参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值