map()函数接受两个参数,一个是函数,另一个是一个可迭代对象,而map的作用就是将可迭代对象中的元素一个个的放进函数中运算并将结果作为新的迭代器返回,要注意返回的迭代器是惰性计算,要进行转换。
比如现在一个函数为f(x)=x*x,作用在一个list[1,2,3.4,5.,6,7,8,9,]上,
map实现如下
def f(x):
return x*x
r=map(f, [1,2,3.4,5.,6,7,8,9,])
list(r)
最后得到的r因为是迭代器所以要用list函数将他整个序列计算出来并返回。
再比如转换函数:
r=list(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
for x in r:
print(x)
此函数能够将原本list中的元素转化为字符串格式
reduce()函数则是在map()的基础上做进一步的运算,reduce函数接受两个参数,一个是函数(函数有两个参数),另一个还是依然是可迭代对象,而reduce就会将结果与序列的下一个元素作累计计算
>>> from functools import reduce
>>> def add(x, y):
... return x + y
...
>>> reduce(add, [1, 3, 5, 7, 9])
25