python内置函数reduce()

python内置函数reduce()

目录

    • python内置函数reduce()
      • 一、简介
      • 二、详解
      • 三、代码
      • 四、Reference

一、简介

reduce()函数会对参数序列中的元素进行处理,然后累计。具体执行的操作是函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。

注意:
在python2.x版本中reduce是内置函数,但是在python3.x中reduce放置在functools模块下,使用之前记得导入functools模块。可以使用下列语句
from functools import reduce

二、详解

语法:reduce(function, iterable[, initializer])
功能:将两个参数的 function 从左至右积累地应用到 iterable 的条目,以便将该可迭代对象缩减为单一的值。
参数:

  • function接受两个参数,首先将iterable中的前两个参数,作用于function,将结果在与iterable的第三个元素进行作用,直至遍历完iterable
  • itterable可迭代的对象
  • initializer,如果存在可选项 initializer,它会被放在参与计算的可迭代对象的条目之前,并在可迭代对象为空时作为默认值

大致等价代码:

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

三、代码

# reduce
from functools import reduce
print(reduce(lambda x, y: x + y, [1,2,3,4,5]))  # 计算列表逐个求和
print(reduce(lambda x, y: x * y, [1,2,3,4,5]))  # 计算列表逐个乘积
15
120

四、Reference

https://docs.python.org/zh-cn/3.9/library/functools.html?highlight=reduce#functools.reduce
https://www.runoob.com/python/python-func-reduce.html

你可能感兴趣的:(#,python内置函数,Python,python,开发语言,后端)