Python3高阶函数之map和reduce
in 编程 with 0 comment

Python3高阶函数之map和reduce

in 编程 with 0 comment

由于之前已经学习过Perl,故在最近学习Python3过程中,发现基础语法的学习并不困难,反而是一些其他部分学起来有点儿难,但是这些部分也是相当重要的,比如一些高阶函数(即把函数作为参数传入的函数),使用还是很普遍的,因此现将map()和reduce()函数的使用与区别记录一下,免得混淆。

map()

map()函数的使用方法形如map(f(x),Itera) . 它有两个参数,第一个参数为某个函数,第二个为可迭代对象。

1 >>> def g(x):
2     return 3 * x
3 
4 >>> l=map(g,[1,3,4,5,7,10])
5 >>> list(l)
6 [3, 9, 12, 15, 21, 30]

reduce()

'reduce()函数的使用方法形如reduce(f(x),Itera). 它的形式和map()函数一样。不过参数f(x)`必须有两个参数。reduce()函数的作用是:把结果继续和序列的下一个元素做累积计算。

>>> from functools import reduce
>>> def add(x,y):     #定义一个相加函数
        return x+y

>>> reduce(add,[1,2,3,4,6])
16