<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
网友评论