python基础之lambda表达式

本文通过实例展示了Lambda表达式在Python中排序列表和作为函数参数的应用,解释了如何利用Lambda表达式灵活地调整排序规则及改变函数功能。

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

一. 在排序中的应用

例:

>>> List=[{"name":"wan gang","age":22,"gender":"boy","score":583},
	{"name":"zhang mei","age":21,"gender":"girl","score":530},
	{"name":"li niu","age":22,"gender":"boy","score":581},
	{"name":"he meimei","age":23,"gender":"girl","score":509},
	{"name":"ma yun","age":26,"gender":"boy","score":492},
	{"name":"niu fang","age":25,"gender":"girl","score":614},
	{"name":"zhao yun","age":20,"gender":"boy","score":505}]
>>> List.sort(key=lambda x:x["score"]) #按照score进行排序
>>> List
    [{'name': 'ma yun', 'age': 26, 'gender': 'boy', 'score': 492}, 
    {'name': 'zhao yun', 'age': 20, 'gender': 'boy', 'score': 505}, 
    {'name': 'he meimei', 'age': 23, 'gender': 'girl', 'score': 509}, 
    {'name': 'zhang mei', 'age': 21, 'gender': 'girl', 'score': 530}, 
    {'name': 'li niu', 'age': 22, 'gender': 'boy', 'score': 581}, 
    {'name': 'wan gang', 'age': 22, 'gender': 'boy', 'score': 583}, 
    {'name': 'niu fang', 'age': 25, 'gender': 'girl', 'score': 614}]

二.作为实参传入函数,可以改变函数的功能

例:

>>> def test(a,b,func):
	sum=func(a,b)
	return sum

>>> a=3
>>> b=5
>>> test(a,b,lambda x,y:x+y)  #此时,整个lambda表达式作为实参,x,y依旧时lambda中的形参
8
>>> test(a,b,lambda x,y:x*y)  #lambda表达式不同,调用test得到的值不同
15
>>> test(a,b,lambda x,y:x*y+100)
115

关键字 eval 可以将字符串“lambda x,y:x+y"变为lambda表达式。

例:

>>> def test(a,b,func):
	sum=func(a,b)
	return sum
>>> a=3
>>> b=5
>>> func=input("输入lambda表达式:")
输入lambda表达式:lambda x,y:x-y
>>> func_new=eval(func)  #用eval将上面输入的字符串"lambda x,y:x-y"转换为lambda表达式
>>> test(a,b,func_new)
-2

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值