Python 对积进行归约

  • Post category:Python

Python中对积进行归约(或称求积)的方法主要是使用reduce()函数。reduce()函数两个强制参数是要执行的函数和可迭代对象,可迭代对象可以是列表、元组、集合等序列类型,甚至是文件对象。

reduce()函数会在可迭代对象上递归调用提供的函数,并将结果聚合为单个返回值,该函数通常为lambda表达式,可以通过import functools导入reduce()函数。

下面是示例代码:

import functools

#使用reduce求积
list1 = [1, 2, 3, 4, 5]
product = functools.reduce(lambda x, y: x * y, list1)
print("Product of list1: ", product)

#使用reduce求连续整数的积
def prod(n):
  return functools.reduce(lambda x, y: x * y, range(1, n+1))

num = int(input("Enter a number: "))
print("Product of first {} integers is {}".format(num, prod(num)))

解释一下上面的两个示例:

  • 第一个示例是对给定列表中所有元素的积进行归约,reduce()函数通过lambda表达式依次将x和y相乘,最终返回这个积。

  • 第二个示例是求n个连续整数的积,prod()函数首先使用range()函数生成一个包含1到n的整数序列,然后使用reduce()函数将它们归约为积。

以上就是Python对积进行归约的方法及说明。