在python中,lambda允许用户快速定义单行函数,当然用户也可以按照典型的函数定义完成函数。lambda的目的就是简化用户定义使用函数的过程。
In [6]: s = lambda x: x+1 In [7]: s(5) Out[7]: 6
也可以定义多个参数
n [8]: s = lambda x, y : x+y In [9]: s(4,5) Out[9]: 9
需要注意的是:
1.lambda定义的是单行函数,如果需要复杂的函数,应该定义普通函数
2.lambda中的表达式不能含有命令,而且只限一条表达式
典型的使用场景是将嵌套了字典的列表按字典的某个键的大小进行排序:
student = [{"no": 1,"score": 90},{"no": 2,"score": 90},{"no": 3,"score": 88},{"no": 4,"score": 92}] # 单级排序,仅按照score排序 student_sort_1 = sorted(student, key=lambda e: e.__getitem__('score')) # 多级排序,先按照score,再按照no排序 student_sort_2 = sorted(student, key=lambda e:(e.__getitem__('score'), e.__getitem__('no')))