python 函数式编程中提供的函数

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 函数      包装函数传递固定参数
Buy me a 肥仔水!