# 内容摘要
- 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
-