pyhton中map和reduce

from functools import reduce
import numpy as np
'''
reduce[function, sequence[, initial]]使用
1、function:是一个有两个参数的函数,reduce依次从sequence中取一个元素,和上一次调用function的结果做参数再次调用function
2、如果设置initial参数,会以sequence中的第一个元素和initial作为参数调用function。
'''
# 不设置initial
def reduce1():
    result = reduce(lambda x, y: x+y, [1, 3, 5, 7, 9])
    print('无initial:', result)
def reduce2():
    result = reduce(lambda x, y: x + y, [1, 3, 5, 7, 9],100)
    print('有initial:', result)

'''
    map(function, sequence[, sequence, ...]) -> list
    第一个参数是函数,剩下是一个或多个序列,返回一个集合
    1、存在多个序列,会依次以每个序列中相同位置的元素做参数调用function函数
'''
def map1():
    array = np.arange(1,4)
    print('array:', array)
    result = map(lambda  x: x**2, array)
    for index,value in enumerate(result):
        print( value)
def map2():
    array1 = np.arange(1,5)
    array2 = np.arange(5,10)
    print('array1:', array1)
    print('array2:', array2)
    result = map(lambda x, y: x + y, array1, array2)
    for index, value in enumerate(result):
        print(value)
if __name__ == '__main__':
    print('-----------------reduce-----------')
    reduce1()
    reduce2()
    print('---------------map-----------------')
    map1()
    print('多个序列')
    map2()

 

posted @ 2017-12-12 11:11  九叶草  阅读(210)  评论(0编辑  收藏  举报