lambda 为关键字,是实现python中单行最小函数。
lambda x:y
说明: x是入参,y是表达式
g = lambda x:x * 2
相当于
def g(x):
return x*2
Eg1:
print [(lambda x : x*x - 4)(x) for x in range(4)]
>>>
[-4, -3, 0, 5]
print (lambda x:x*x - 4)(3)
>>> 5
g = lambda x: x*x-4
for i in range(10):
print g(i)
>>>
-4 -3 0 5 12 21 32 45 60 77
Filter
filter(function, sequence)
函数功能:对sequence 中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)
参数说明:
function 为函数
sequence 为列表/元组/字符串
返回值:
item列表/元组/字符串
Eg2:
print filter(lambda x:x*x-4,range(10))
>>>
[0, 1, 3, 4, 5, 6, 7, 8, 9]
Map
map(function, sequence)
函数功能:对sequence中的item依次执行function(item),将执行结果function(item)组成一个List返回。
参数说明:
function 为函数
sequence 为列表/元组/字符串,有多少个列表就应该有多少个入参,具体例子见Eg3.2.
返回值:
function(item)列表
Eg3.1:
print map(lambda x:x*x-4,range(10))
>>>
[-4, -3, 0, 5, 12, 21, 32, 45, 60, 77]
Eg3.2:
print map(lambda x, y:x*y-4,range(3),[8,9,10])
>>>
[-4, 5, 16]
Reduce
reduce(function, sequence, starting_value)
函数说明:
对sequence中的item顺序迭代调用function,如果有starting_value,可作为初始值调用。
function接收的参数个数只能为2,先把sequence中的第一个和第二个值当参数传给function,再把function的返回值和第三个值当参数传给function,然后只返回一个结果。
参数说明:
function 为函数
sequence 为列表/元组/字符串
starting_value 为初始值
返回值:
数值结果
Eg4:
print reduce(lambda x,y:x*y-4,range(4))
>>>
-40
print reduce(lambda x,y:x+y, range(101))
#计算0到100的和
>>>
5050
print reduce(lambda x,y:x+y, range(101),100)
>>>
5150
参考文章链接:
https://www.cnblogs.com/yufeihlf/p/6179982.html
http://www.runoob.com/python/python-func-filter.html