Python学习(三)——map和reduce函数

来源:互联网 发布:唯一网络王宇杰简介 编辑:程序博客网 时间:2024/04/30 21:26

      python内建了map和reduce函数。

    先来看看map函数。map函数接收两个参数,第一个参数是函数,第二个函数是序列。map将传入的函数依次作用到序列的每个元素上,并把结果作为新的list返回。

    比如,定义一个函数f(x) = x*x,要把这个函数作用到序列[1,2,3,4,5,6,7,8,9]上,就可以用map如下实现:


>>> def f(x):return x*x
>>> map(f,[1,2,3,4,5,6,7,8,9])[1, 4, 9, 16, 25, 36, 49, 64, 81]
    map传入的第一个参数是f,即函数对象本身。


    再来看reduce函数。reduce把一个函数作用到一个序列上,这个函数必须接受两个参数。reduce把结果继续和序列的下一个做累积运算,效果如下:

reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
    比如对一个序列求和,可以如下操作:

>>> def add(a,b):return a + b>>> reduce(add,[1,2,3,4])10
    又例如把序列[1,2,3,4]办成整数1234,页可以用reduce实现:

>>> def fn(a,b):return a*10 +b>>> reduce(fn,[1,2,3,4])1234






0 0
原创粉丝点击