美文网首页
Python中的map和reduce

Python中的map和reduce

作者: 敢梦敢当 | 来源:发表于2017-07-11 10:05 被阅读0次

<strong>对可迭代函数'iterable'中的每一个元素应用‘function’方法,将结果作为list返回。python中的map函数应用于每一个可迭代的项,返回的是一个结果list。如果有其他的可迭代参数传进来,map函数则会把每一个参数都以相应的处理函数进行迭代处理。map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。<strong>

<h1>一 map函数 <h1>

例子

a = list(map(lambda x: x * x,[1,3,5,6]))
print(a)

输出

[1, 9, 25, 36]

作用:map第一个参数为一个函数对象,之后的为一个序列。将序列的每个元素依次经过函数加工,在py3中得到一个循环对象,可用list来查看结果.

i = [1,2,3,4]
j = [3,6,8,9]
print(list(map(lambda i,j : i + j,i,j)))

输出

[4, 8, 11, 13]

<h1>二 reduce函数<h1>

<strong>
reduce()函数是Python内置的一个高阶函数.
reduce()函数接收的参数,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。
<strong>

例如,编写一个f函数,接收x和y,返回x和y的和:

def f(x, y):
        return x + y

调用reduce(f,[1,3,5,7])时,函数执行如下:

先计算头两个元素:f(1, 3),结果为4;
    再把结果和第3个元素计算:f(4, 5),结果为9;
    再把结果和第4个元素计算:f(9, 7),结果为16;
    再把结果和第5个元素计算:f(16, 9),结果为25;
    由于没有更多的元素了,计算结束,返回结果25。

reduce还可以接受三个参数,作为计算的初始值。

reduce(f,[1,3,5,7],100)  //返回116

相关文章

网友评论

      本文标题:Python中的map和reduce

      本文链接:https://www.haomeiwen.com/subject/ylephxtx.html