Python reduce()函数教程及示例

Python提供了不同的有用函数来帮助开发人员。 reduce() 函数是其中之一,它用于使用提供的函数评估给定的列表项。

null

reduce()函数语法

reduce()函数使用以下语法。

reduce(FUNCTION, SEQUENCE, INITIAL)
  • `reduce`是reduce函数的名称
  • `FUNCTION`是我们要用于计算序列项的函数名。
  • `SEQUENCE`是包含由函数处理或计算的多个项的列表。
  • `INITIAL`可以设置为函数的第一个参数,但INITIAL是可选的,通常不使用。

导入工具模块/库

为了使用reduce()函数,我们需要提供提供它的模块。 functools 模块提供了reduce()函数,因此我们将像下面这样导入functools。

import functools

reduce()函数示例

我们将使用以下示例来解释reduce()函数。我们首先从functools模块导入reduce()函数。然后创建一个名称为 numbers 包含数字。然后我们将创建一个函数,该函数将在reduce()中使用,名称为 my_sum() . 然后我们将通过提供函数名myu sum()和名为numbers的列表来调用reduce()函数。

from functools import reducenumbers = [ 1 , 2 , 3 , 4 , 5 ]def my_sum(a,b):   return a+bresult = reduce(my_sum,numbers)print(result)
reduce() Function Example
reduce()函数示例
  1. 第一次,数字列表的第一个和第二个元素将被提供给mysum()函数。
  2. 当my_sum()函数对给定的参数(1和3)求和时,函数将返回3。
  3. 现在,3和下一个在列表3中的第三个将被提供给my_sum()函数,该函数将对它们求和并返回6
  4. 现在我们有了6,数字列表的第四个元素4将提供给my_sum()函数。
  5. …这将继续到列表中的每一项都使用给定函数求值,最后一个值将设置为’result’变量。

相关文章: 什么是Lambda?

带有初始值的reduce()示例

reduce()函数通常不使用初始值,语法部分对此进行了描述。但在某些情况下,使用初始值可能是有用的,甚至是必要的。  通过使用初始值,第一个元素将是初始值,提供的列表第一个元素将是第二个参数。

from functools import reducenumbers = [ 1 , 2 , 3 , 4 , 5 ]def my_sum(a,b):   return a+bresult = reduce(my_sum,numbers,7)print(result)
reduce() Example with Initial Value
带有初始值的reduce()示例
  1. 提供7作为初始值,1是数字列表的第一个元素。7和1将作为参数提供给函数my_sum(),结果为8。
  2. 在第二次迭代中,8是函数myu sum()的第一个参数,2是第二个参数。
  3. …事情会像正常的函数一样继续。

带运算符函数的reduce()函数

Python提供了运算符函数,它只是4个基本的计算,比如加法、乘法等。我们可以将这些运算符函数与reduce()函数一起使用,这样可以提高代码的可读性。在本例中,我们将使用add()运算符函数。为了使用操作符函数,我们应该导入操作符模块。

from functools import reducefrom operator import addnumbers = [ 1 , 2 , 3 , 4 , 5 ]result = reduce(add,numbers)print(result)
reduce() Function with Operator Functions
带运算符函数的reduce()函数

我们可以看到我们刚刚提供了 add() 功能。

带Lambda函数的reduce()

Lambda函数用于创建匿名函数和内联函数,而无需显式定义它们。我们可以同时使用reduce()和lambda函数,这比显式函数定义更具可读性。在本例中,我们将创建一个lambda函数,该函数将对给定的列表项求和。

from functools import reducenumbers = [ 1 , 2 , 3 , 4 , 5 ]result = reduce(lambda x,y: x+y ,numbers)print(result)
reduce() with Lambda Function
带Lambda函数的reduce()

使用reduce()将列表转换为字符串

reduce的另一个用例是提供一个字符串列表,并将所有项连接到一个字符串中,比如一个句子。在本例中,我们将提供名为 strlist 到reduce()函数。我们还将使用lambda操作,将给定的字符串元素连接在一起。

from functools import reducefrom operator import addstrlist=['I ', 'love ', 'poftut.com']result = reduce(lambda x,y: x+y ,strlist)print(result)
Convert List To String with reduce()
使用reduce()将列表转换为字符串
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享