Python - AI 助手

Python functools reduce() 函式



Python 的 `reduce()` 函式將多個引數歸約為單個值。此函式透過將其應用於可迭代物件來返回聚合值。它從第一對引數開始,然後將結果與下一個值一起使用。

語法

`reduce()` 函式的語法如下所示。

reduce(func, iterable, initializer)

引數

`partial()` 函式的引數列在下面:

  • **func:** 此函式接受兩個引數並返回單個值。
  • **iterable:** 計算需要歸約的值序列。
  • **initializer:** 用於累積結果的初始值。如果未指定初始值,則第一個元素將用作初始值。

返回值

此函式返回單個聚合值。

示例 1

在下面的示例中,我們使用 `functools` 模組中的 `reduce()` 函式,它透過將 lambda 函式應用於列表來計算列表的總和和最大元素。

import functools
list = [5, 10, 15, 20, 25]
print("The sum of the list is : ", end="")
print(functools.reduce(lambda x, y: x+y, list))
print("The maximum elements are : ", end="")
print(functools.reduce(lambda x, y:   x if x > y else y, list))

輸出

結果如下所示:

The sum of the list is : 75
The maximum elements are : 25

示例 2

在下面的示例中,我們使用 `reduce()` 函式來計算列表的總和。

from functools import reduce
def sum(x, y):
    return x+y
a = reduce(sum, [3, 5, 7, 9, 11])
print(a)

輸出

程式碼如下所示:

35

示例 3

現在,我們從給定的引數中計算初始值,lambda 函式一次新增兩個數字。第三個引數在此過程中充當初始值,可以使用 `reduce()` 函式實現。

from functools import reduce
myNumbs = (2, 4, 6, 8, 10, 12, 14)
print(reduce(lambda x, y: x+y, myNumbs, 8))

輸出

輸出如下所示:

64
python_modules.htm
廣告