您的位置:首页 > 编程语言 > Python开发

Python进阶—使用lambda创建匿名函数

2017-09-29 16:11 639 查看
  匿名函数也就是没有名字的函数,语法:

lambda 参数:表达式

整个lambda表达式相当于一个def函数,可以传参,参数可以多个,以逗号隔开;有返回值。lambda常使用于创建简单的函数,一行搞定,灵活运用可使代码更简洁,举一些例子:

func1 = lambda x: x**2
def func2(x):
return x**2
print func1(2)
print func2(2)
#这里func1和func2完全等价的,输出都是4
#lambda常结合map、filter、reduce使用
a = range(-5, 5)
print map(lambda x: x**2, a) #求a中所有元素的平方
print filter(lambda x: x % 2 == 0, a) #求a中所有能被2整除的元素
print reduce(lambda x, y: x + y, a) #求a中元素的累和


以下是上段代码的输出:

4

4

[25, 16, 9, 4, 1, 0, 1, 4, 9, 16]

[-4, -2, 0, 2, 4]

-5

map、filter也可以用…for…in…if…实现:

print [x**2 for x in range(-5, 5)]
print [x for x in range(-5, 5) if x % 2 == 0]


lambda也可以将函数作为参数传入,例如:

#如求一个数的平方和三次方
def f1(x):
return x**2
def f2(x):
return x**3
for i in range(5):
print map(lambda x: x(i), [f1,f2])


输出:

[0, 0]

[1, 1]

[4, 8]

[9, 27]

[16, 64]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: