【1.31】reduce 函数

语法

from functools import reduce        注意

在 Python3 中,reduce() 函数已经被从全局名字空间里移除了,它现在被放置在 functools 模块里,如果想要使用它,则需要通过引入 functools 模块来调用 reduce() 函数:

 

reduce() 函数语法:

reduce(function, iterable[, initializer])

参数

  • function -- 函数,有两个参数
  • iterable -- 可迭代对象
  • initializer -- 可选,初始参数
    #reduce 函数
    #将列表中的数字相乘
    list1 = [3,2,100]
    res = 1
    for i in list1:
        res = res*i
    print res
    
    #函数化
    list1 = [3,2,100]
    def func(array):
        res = 1
        for i in array:
            res = res * i
        return res
    print func(list1)
    
    #lambda 形式
    list1 = [3,2,100]
    def func1(func1,array):
        res = list1.pop(0)
        for i in array:
            res =func1(res,i)
        return res
    print func1(lambda x,y:x*y,list1)
    
    #python3 要导入 python2 就正常的
    from functools import reduce
    #reduce 函数 list1 = [3,2,100] print(reduce(lambda x,y:x*y,list1,2.3333))

    这里先计算 3*2   注意这里的计算方法
    在计算6 * 100

     

posted @ 2016-03-20 17:56  科学小怪癖  阅读(145)  评论(0)    收藏  举报