×

python的reduce函数

穆琪 穆琪 发表于2018-08-23 23:11:13 浏览362 评论0

抢沙发发表评论

reduce函数 reduce函数,reduce函数会对参数序列中元素进行累积。 reduce函数的定义: functools.reduce(function, iterable[, initializer])  #python3中reduce是在functools模块中 function参数是一个有两个参数的函数,reduce依次从iterable中取一个元素,和上一次调用function的结果做参数再次调用function。 第一次调用function时,如果提供initial参数,会以iterable中的第一个元素和initial作为参数调用function,否则会以iterable中的前两个元素做参数调用function。 等价于: def reduce(function, iterable, initializer=None): it = iter(iterable) if initializer is None: value = next(it) else: value = initializer for element in it: value = function(value, element) return value   >>> functools.reduce(lambda x, y:x+y, [1,2,3,4]) 10 >>> functools.reduce(lambda x, y:x+y, [1,2,3,4], 10) 20 >>> functools.reduce(lambda x, y:x*y, [1,2,3,4]) 24   如果没有initial参数,这么算:(((1+2)+3)+4) 如果有initial参数,这么算: ((((10+1)+2)+3)+4)   注意:function函数不能为None,function必须是有2个参数的函数。