Python:函数式编程
2018-03-21 15:36
309 查看
filter 函数
filter(function, iterable)
function – 判断函数。
iterable – 可迭代对象。
相当于过滤器。调用一个布尔函数
bool_func来迭代遍历每个seq中的元素;返回一个使
bool_seq返回值为true的元素的序列。
python2中返回的是过滤后的列表,而python3中返回到是一个filter类,可以看成是一个迭代器
>>> a = [1,2,3,4,5,6,7] >>> b = filter(lambda x: x>5, a) # python 2.x >>> print b [6,7] # python 3.x >>> print(b) <filter object at 0x02EE8DB0>
map函数
map(function, iterable, ...)
function – 映射函数
iterable – 一个或多个序列
会根据提供的函数对指定序列做映射。如果函数有多个参数,但每个参数的序列元素数量不一样,会根据最少元素的序列进行。
python 2.x 返回列表。
python 3.x 返回迭代器。
>>> a = map(lambda x: x*2, [1,2,3]) >>> list(a) [2,4,6] # 提供了两个列表,对相同位置的列表数据进行相加。 # 如果列表元素数量不一样,会根据最少元素的序列进行。 >>> b = map(lambda x,y: x+y, [1,2,3], [2,3,4,5]) >>> list(b) [3, 5, 7]
reduce函数
reduce(function, iterable[, initializer])
function – 函数
iterable – 可迭代对象
initializer – 可选,初始参数
对参数序列中元素进行累积。
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给reduce中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。如果提供了 initial 参数,计算时它将被放在序列的所有项前面,如果序列是空的,它也就是计算的默认结果值了。
python 2.x 可以直接使用。
python 3.x 需要先引用
from functools import reduce。
>>> from functools import reduce >>> reduce(lambda x,y:x*y,range(1,4)) 6
zip函数
zip([iterable, ...])
iterabl – 一个或多个迭代器
用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。
利用 * 号操作符,可以将元组解压为列表。
python 2.x 返回列表。
python 3.x 返回迭代器。
# python 2.x >>> a = [1,2,3] >>> b = [4,5,6] >>> c = [4,5,6,7,8] >>> zipped = zip(a,b) #打包为元组的列表 [(1, 4), (2, 5), (3, 6)] >>> zip(a,c) # 元素个数与最短的列表一致 [(1, 4), (2, 5), (3, 6)] >>> zip(*zipped) # 与 zip 相反,可理解为解压,返回二维矩阵式 [(1, 2, 3), (4, 5, 6)]
相关文章推荐
- Python基础III---函数式编程
- Python学习基础(9):函数式编程
- python高级特性、函数式编程、面向对象
- python之路——函数式编程
- 12/19 python的函数式编程
- 慕课网学习Python进阶教程,包括(函数式编程、模块、面向对象编程、类的继承、定制类)
- 详细Python修饰器Decorator的函数式编程
- Learning Python 012 函数式编程 2 返回函数 匿名函数 装饰器 偏函数
- python3 第二十三章 - 函数式编程之Partial function(偏函数)
- Python基础:09函数式编程
- Python中的函数式编程
- Python的函数以及函数式编程
- Python学习笔记(五)——函数式编程
- python函数式编程之(open(var1 if not var2 else var2))
- Python学习9:函数式编程
- Python3 学习笔记19_函数式编程_20180308
- 【Python学习笔记】函数式编程:高阶函数
- 【python学习笔记】函数式编程:返回函数
- Python 函数式编程之 filter()、map()和reduce()
- Python学习笔记07_函数式编程