# 内容摘要
- lambda 函数
- lambda 函数用法
- 
lambda 函数 最开始接触 lambda 函数时,觉得它好神奇,简单一行代码可以完成平时多行代码才能实现的函数功能。 例如: 1 
 2func = lambda x,y: x+y 
 func(1,2)执行结果为: 1 3 那 lambda 函数究竟是什么呢?lambda 函数是匿名函数,即无需定义函数名,在一行中定义函数 - 
lambda 表达式 1 lambda arg1, arg2, ...: expression 我们按照正常的函数定义来看这个表达式,函数可以有 0 个或多个参数,因此 arg是可选项。函数语句即为expression,expression的执行结果即为返回值,expression定义为None即代表没有返回值
 
- 
- 
lambda 函数用法 - 
赋值语句,定义函数 1 
 2
 3
 4func = lambda x,y: x*y 
 func(2,2)
 # output
 4
- 
函数覆盖,替换已有函数 1 
 2
 3
 4time.clock = lambda:'again' 
 time.clock()
 # output
 'again'
- 
作为其他函数的参数 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23# sorted 
 # 常用的字典按value排序
 _dict = {'a':3, 'b':1, 'c':2}
 sorted(_dict.items(), key = lambda item: item[1])
 # output
 [('b', 1), ('c', 2), ('a', 3)]
 _lst = [1,2,3]
 # filter 过滤特定条件的元素
 list(filter(lambda x: x <= 2, _lst))
 # output
 [1, 2]
 # map 针对列表中每一个元素的操作
 list(map(lambda x:x**2, _lst))
 # output
 [1, 4, 9]
 # reduce 列表中相邻元素的两两结合条件
 from functools import reduce
 reduce(lambda x, y: x+y, _lst)
 # output
 6
 
- 
