[2015-08-07] python018
2015-08-09 23:39
465 查看
匿名函数lambda
[code]lambda args:expression f1 = lambda x,y : x+y args:以逗号分隔的参数列表 expression:用到args中各参数的表达式
lambda语句定义的代码必须是合法的表达式,不能出现多条件语句(可使用if的三元表达式)和其他非表达式语句,如for和while等
lamda的首要用途是指定短小的回调函数
lambda将返回一个函数而不是将函数赋值给某变量名
注意:
lambda是一个表达式而非语句
lambda是一个单个表达式,而不是一个代码块
def语句创建的函数将赋值给某变量名,而lambda表达式则直接返回函数
lambda也支持使用默认参数
Python函数式编程
函数式编程:也称作泛函编程,是一种编程规范
它将电脑运算视为数学上的函数计算,并且避免状态以及可变数据
函数式编程语言最重要的基础是lambda演算,而且lambda演算的函数可以接受函数当作输入和输出
Python支持有限的函数式编程功能:
过滤器 filter(func,seq)
filter()为已知的序列的每个元素调用给定的布尔函数
调用中,返回值为非零值的元素将被添加至一个列表中
映射器 map(func,seq1[,seq2…])
map()将函数调用“映射”到每个序列的对应元素上并返回一个含有所有返回值的列表
折叠 reduce(func,seq[,init])
将二元函数作用域seq序列的元素,每次携带一对(先前的结果以及下一个序列元素),连续地将现有的结果和下一个值作用在获得的随后的结果上,最后减少我们的序列为一个单一的返回值;如果初始值init给定,第一个比较会是init和第一个序列元素而不是序列的头两个元素
相关文章推荐
- 【Python基础】生成器——generator
- python出现SyntaxError: Non-ASCII character '\xe6' in file错误
- python正则表达式 re (二)findall与finditer
- python2.x与3.x除法的区别
- 9.Python基础 面向对象的进一步拓展
- python正则表达式 re (二)split
- 【Python】内置函数清单
- 零基础学python-1.5 第一个程序
- 零基础学python-1.5 第一个程序
- Python的赋值,浅拷贝与深拷贝
- Python的多线程与多进程实践
- python matplotlib 实战安装 初体验
- python 在终端打印各种颜色的字体的方法
- Python 3.4 学习总结 (2)
- 在Notepad++中搭配Python开发环境(修改版)
- Python 3下Matplotlib画图中文显示乱码的解决方法
- Python笔记
- python的编码规范【摘】
- python判断unicode是否是汉字,数字,英文,或者其他字符
- 【python3】相关资料库