python lambda用法

一、lambda函数的语法

 lambda语句中,冒号前是参数,可以有0个或多个,用逗号隔开,冒号右边是返回值。lambda语句构建的其实是一个函数对象。

 1》无参数:

f = lambda:'Hello python lambda'
f()
#'Hello python lambda'

 2》有参数,无默认值

f = lambda x,y: x*y
f(6,7)
#42

  

 3》有参数,有默认值

f = lambda x=5, y=8: x*y
f()
#40
f(5,6)
#30

  

 4》和map, reduce, filter连用

foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]

print filter(lambda x: x % 3 == 0, foo)#python 2.x
list( filter(lambda x: x % 3 == 0, foo) )#python 3.x
#[18, 9, 24, 12, 27]

print map(lambda x: x * 2 + 10, foo)#python 2.x
list( map(lambda x: x * 2 + 10, foo) )#python 3.x
#[14, 46, 28, 54, 44, 58, 26, 34, 64]

from functools import reduce#python 3.x need import reduce
reduce(lambda x, y: x + y, foo)
#139

  

原文地址:https://www.cnblogs.com/always-fight/p/9252651.html