Python中的reduce内建函数使用方法指南
介绍
reduce()
是 Python 中的一个内建函数。该函数将一个二元函数(具有两个参数的函数)作用在一个序列上,不断地将序列中相邻的两个元素组合起来,最终使得该序列缩减为一个单一的值。
例如,假设我们有一个包含数字的序列,使用 reduce()
函数可以获取这个序列中所有数字的和。
语法
reduce()
函数的语法如下:
reduce(function, iterable[, initializer])
function
:二元函数,也称为累加器,接受两个参数,必须返回一个值。要缩减的序列中的挨个元素将传递给此函数。iterable
:缩减的序列。initializer
:可选的,用作计算的初始值。
在提供了初始值 initializer
的情况下,该函数将从序列的第一个元素开始执行,不提供初始值,则从序列的第二个元素开始执行。
示例
求和
考虑一个具有以下元素的数字列表: [1, 2, 3, 4, 5]
。我们可以使用 reduce()
函数来找出该列表中所有数字的和。在这个例子中,我们没有使用初始值 0
。以下是演示:
from functools import reduce
numbers = [1, 2, 3, 4, 5]
result = reduce(lambda x, y: x + y, numbers)
print(result)
输出结果为: 15
。
在上述示例中,lambda
表达式接受两个参数: x
和 y
。每个元素都按顺序传递给该函数。首先,x
和 y
分别为 1
和 2
。下一个迭代,x
变为 3
,y
变为 3
。最后,x
为 15
,y
为 4
,并且结果为 19
。
阶乘
接下来,让我们以计算阶乘的方式来使用 reduce()
函数。在下面的示例中,我们将使用 range()
函数创建一个数字列表来表示要求阶乘的数字。
from functools import reduce
number = 4
result = reduce(lambda x, y: x * y, range(1, number+1))
print(result)
输出结果为: 24
。
在上述示例中,我们从 1
到 4
使用 range()
函数创建了一个数字列表。累加器函数 lambda
将两个参数相互乘积。在第一次迭代中,x
为 1
,y
为 2
。结果为 2
。x
现在将为 2
,在相乘后等于 6
。这个过程持续到到达最后的 4
。现在,我们已经计算出阶乘为 4
的数字,结果为 24
。
结论
我们已经在上述示例中看到了 reduce()
函数的两个用途。期望这份指南对大家来说有所帮助!