python实用小技巧之lambda

如果我们想写如下这样一个函数
在这里插入图片描述
一般情况我们会这样写:

def func(a, b, c, d, e, f, x, y):
	return a*x*x + b*x*y + c*y*y + d*x + e*y + f

有一种可读性更强的写法(利用lambda):
lambda A:B
A:输入,B:输出

def func(a, b, c, d, e, f):
	return lambda x,y:a*x*x + b*x*y + c*y*y + d*x + e*y + f
	
调用如下:
func( 2, -1, 4, 12, -9, 18)(x = 1, y = 1))
这样我们就只把x,y当成变量,而a, b, c, d, e, f看成系数了。

lambda也经常用与排序中:

list1 = [["d",1], ["a",3], ["c",2], ["b",5], ["e",4]]

sort_list_1 = sorted(list1, key=lambda x:x[0]) # 根据第一个元素排序
sort_list_2 = sorted(list1, key=lambda x:x[1]) # 根据第二个元素排序
print(sort_list_1)
print(sort_list_2)

output:
[['a', 3], ['b', 5], ['c', 2], ['d', 1], ['e', 4]]
[['d', 1], ['c', 2], ['a', 3], ['e', 4], ['b', 5]]
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值