pythonのreduce()関数

816 ワード

reduce()関数もPythonに内蔵された高次関数です.
reduce()関数が受信するパラメータはmap()と類似しており、1つの関数f、1つのlistであるが、動作はmap()とは異なり、reduce()が入力する関数fは2つのパラメータを受信しなければならず、reduce()はlistの各要素に対して関数fを繰り返し呼び出し、最終結果値を返す.
例えば、f関数を記述し、xとyを受信し、xとyの和を返します.
def f(x, y):
    return x + y

reduce(f,[1,3,5,7,9])を呼び出すと、reduce関数は次のように計算されます.
        :f(1, 3),   4;
      3     :f(4, 5),   9;
      4     :f(9, 7),   16;
      5     :f(16, 9),   25;
          ,    ,    25。

上記の計算は実際にlistのすべての要素を合計します.Pythonには求和関数sum()が内蔵されているが,reduce()を用いて求和するのも簡単である.
reduce()は、計算の初期値として3番目のオプションパラメータを受信することもできる.初期値を100に設定すると、次のように計算されます.
reduce(f, [1, 3, 5, 7, 9], 100)

結果は125になります.第1ラウンドの計算は次のとおりです.
初期値と最初の要素:f(100,1)を計算し、結果は101であった.