Overview

在可迭代物件中,套用運算式於每一個元素,類似 map() 函式,但實作方法不太一樣,實作步驟為:

  1. 將可迭代物件的前兩個元素進行 lambda 運算式的運算
  2. 將步驟 1 的運算結果和可迭代物件中的下一個元素(第三個)傳入 lambda 函式運算式運算。
  3. 依此類推,直到可迭代物件的元素都運算完成。

Usage

語法:reduce(function, iterable)

因為每一次的運算都是兩個元素傳入,所以 lambda 語法為:reduce((lambda param1, param2: expression), iterable)

from functools import reduce

a = ['a', 'b', 'c', 'd', 'e']
concat = reduce(lambda x, y: x + y, a)
print(concat)  # abcde

Reference