(11)lambda表达式用法
* lambda 简述
lambda只是一个表达式,函数体比def简单很多
lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
lambda表达式是起到一个函数速写的作用。允许在代码内嵌入一个函数的定义
lambda可以有多个参数列表
lambda表达式也叫匿名函数
* 简单例子
result = lambda x:x+3
求一个数加3的结果
fun = lambda x,y:x*y
求两个数相乘
g = lambda x : x**2
print g(4)
数的平方
* 和其它函数组合
map() 将序列中的元素通过处理函数处理后返回一个新的列表
li = [1, 2, 3, 4, 5]
# 序列中的每个元素加1
map(lambda x: x+1, li) # [2,3,4,5,6]
filter() 将序列中的元素通过函数过滤后返回一个新的列表
# 返回序列中的偶数
filter(lambda x: x % 2 == 0, li) # [2, 4]
reduce() 将序列中的元素通过一个二元函数处理返回一个结果
# 返回所有元素相乘的结果
reduce(lambda x, y: x * y, li) # 1*2*3*4*5 = 120
sorted() 结合lambda对列表进行排序
sorted用法:
sorted(iterable, cmp=None, key=None, reverse=False)--> new sorted list terable:是可迭代类型;
cmp:用于比较的函数,比较什么由key决定,有默认值,迭代集合中的一项;
key:用列表元素的某个属性和函数进行作为关键字,有默认值,迭代集合中的一项;
reverse:排序规则. reverse = True 或者 reverse = False,有默认值。
* 返回值:是一个经过排序的可迭代类型,与iterable一样。
sorted(data, key=lambda d: d['sort_time'], reverse=True)