map,reduce高阶函数

iterator:迭代器

python的iterator是一个惰性序列(即你不主动去遍历它,他不会去计算其中元素的值)

m是一个iterator,所以通过tuple()函数让整个序列计算出来,并返回一个元组。

def f(x):
    return x*x
m = map(f,[1,2,3,4,5])
print(tuple(m))

map函数作为一个高阶函数,可以更快,更方便的对一些函数进行处理。 map函数接受的函数作用于列表里的每个元素。

print(list(map(str,[1,2,3,4,5]))) #列表里的元素转成字符串

print(list(map(abs,[1,2,-2,-3,-6])))

对一个序列求和,可用reduce。

from functools import reduce
def func(x,y):
    return x+y
print((reduce(func,[1,2,3,4,5,6])))

 

from functools import reduce
def func(x,y):
    return x*10+y
print((reduce(func,[1,2,3,4,5,6])))   #结果为123456

  

 

  

 

posted @ 2018-03-14 16:27  Roc_Atlantis  阅读(122)  评论(0编辑  收藏  举报