python函数之二 函数式编程
2014-04-14 13:03
302 查看
python函数之二 函数式编程
1lambda
格式:lambda [arg1[, arg2, ... argN]]:expression
python允许用lambda关键词创建匿名函数。匿名是因为不需要以标准的方式来声明。一个完整的lambda语句代表了一个表达式,这个表达式的定义体必须和声明放在同一行。参数是可选的。
用合适的表达式调用一个lambda声称一个可以像其他函数一样使用的函数对象。它们可以被传递给其他函数,用额外的引用别名化,作为容器对象以及作为可调用的对象被调用。
>>> def add(x,y):return x + y ... >>> add(1,2) 3 >>> addl = lambda x, y: x + y >>> addl(1,2) 3 >>> add2 = lambda x, y=2: x + y >>> add2(3) 5 >>> add2(3,4) 7
2内建apply,filter,map,reduce
apply()
apply(func[,nkw][,kw])
用可选的参数来调用func, nkw为非关键字参数,kw为关键字参数。返回值是一个函数调用的返回值。
apply()函数以后会弃用。
filter()
filter(func,seq)
调用一个布尔类型的函数func来遍历seq中的每个元素。返回一个使func返回值为true的元素的序列。
>>> from random import randint >>> odd = lambda n : n % 2 >>> nums = [ randint(1,100) for i in range(10) ] >>> nums [61, 33, 8, 88, 26, 74, 33, 48, 21, 19] >>> filter(odd,nums) [61, 33, 33, 21, 19]
map()
map(func,seq1[,seq2...])
将函数func作用于给定序列的每一个元素,并用一个列表来提供返回值。
>>> map((lambda x: x+2),[0,1,2,3,4,5]) [2, 3, 4, 5, 6, 7] >>> map((lambda x: x**2),[0,1,2,3,4,5]) [0, 1, 4, 9, 16, 25]
reduce()
reduce(func,seq[,init])
将二元函数作用于seq序列的元素,每次携带一对(先前的结果和下一个序列元素)。连续的将现有的结果和下一个值作用在获得的随后结果上。如果初始值Init给定,则第一个比较会是在Init和第一个序列元素。
reduce( (lambda x, y: x + y),range(5))
等同于
( ( ( (0 + 1) + 1 ) + 2 ) +3 ) +4
其原理如下:
def reduce(func,seq,init=None): lseq = list(seq) if init is None: res = lseq.pop(0) else : res = init for item in lseq: res = func(res,item) return res
相关文章推荐
- python3 第二十一章 - 函数式编程之return函数和闭包
- <PY><core python programming笔记>C11 函数和函数式编程
- Learning Python 012 函数式编程 2 返回函数 匿名函数 装饰器 偏函数
- Python 函数式编程--返回函数
- python浓缩(11)函数和函数式编程
- Learning Python 012 函数式编程 2 返回函数 匿名函数 装饰器 偏函数
- python函数式编程内建函数filter,map,reduce函数
- python 学习笔记---函数式编程之高阶函数
- Python学习笔记11:Python函数和函数式编程
- Python进阶学习笔记——函数式编程之高阶函数
- 11 函数和函数式编程 - 《Python 核心编程》
- 转自:Python函数式编程指南(二):函数
- Python学习(20):Python函数(4):关于函数式编程的内建函数
- 八、Python的函数编程(之二)
- Python入门 第四天(函数式编程、map、reduce、filter、排序函数、函数返回函数、闭包、匿名函数lambda)
- python lambda函数 与 函数式编程
- Python 函数式编程--偏函数
- Python的函数式编程-传入函数、排序算法、函数作为返回值、匿名函数、偏函数、装饰器
- python函数式编程:匿名函数,装饰器,偏函数
- [Python]函数式编程的4个常用内建函数