一. 在排序中的应用
例:
>>> 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