python 函数编程中提供的函数 filter,map,reduce
py3 中 map,zip,filter,reduce得到的都是迭代器
py2 中的是 列表
map 把可迭代的对象依次传给函数
(('a'),('b'),('c'),('d') ) ===>> [ {'a':'c'},{'c':'d'}]
a1 = a[:2]
a2 = a[2:]
# (1) list(map(lambda x,y:{x:y},a1,a2)))
# (2) [{item[0]:item[1]} for item in zip(a1,a2)]
filter() 函数用于过滤序列,过滤掉不符合条件的元素
f = filter(lambda x: True if x%2==0 else False,[i for i in range(1,10)] ) # 筛选偶数
print(list(f),isinstance(f,Iterator))
reduce() 函数会对参数序列中元素进行累积。 从functools 导入
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给reduce中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
>>> from functools import reduce
>>>> reduce(lambda x,y:x+y,[1,2,3]) # 1+2+3 -> 6
另外:
functools中
wraps函数 保持被装饰函数的原信息
partial 函数 包装函数,传递固定参数