Python进阶—使用lambda创建匿名函数
2017-09-29 16:11
639 查看
匿名函数也就是没有名字的函数,语法:
lambda 参数:表达式
整个lambda表达式相当于一个def函数,可以传参,参数可以多个,以逗号隔开;有返回值。lambda常使用于创建简单的函数,一行搞定,灵活运用可使代码更简洁,举一些例子:
以下是上段代码的输出:
4
4
[25, 16, 9, 4, 1, 0, 1, 4, 9, 16]
[-4, -2, 0, 2, 4]
-5
map、filter也可以用…for…in…if…实现:
lambda也可以将函数作为参数传入,例如:
输出:
[0, 0]
[1, 1]
[4, 8]
[9, 27]
[16, 64]
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]
相关文章推荐
- 在python中使用lambda来创建匿名函数
- 使用lambda来创建匿名函数
- Python学习笔记: Python匿名函数lambda的使用
- 【python】详解lambda匿名函数以及结合map、reduce、filter、sorted等使用
- python中匿名函数lambda的使用
- 使用lambda来创建匿名函数!
- Python中lambda匿名函数的使用
- lambda匿名函数小练习eval的使用Python3
- python 函数进阶:参数传递,高阶函数,lambda 匿名函数,global 变量,递归
- WebMatrix进阶教程(2):教您如何使用WebMatrix创建第一个网页
- Python的lambda匿名函数
- Python使用MySQLdb创建、调用MySQL存储过程
- 使用python自带的xml.dom创建和解析xml
- 使用PYTHON创建XML文档
- Python:通过计算阶乘来学习lambda和reduce这两个函数的使用
- C++11: 使用 lambda 创建模板类 的 对象
- 我的python学习之路--列表表达式及匿名函数lambda
- [Python]使用 lambda 函数
- 使用python创建xml文件
- MTK进阶——TASK创建及使用