Python reduce() 関数
説明
reduce()関数は引数シーケンス内の要素を累積します。
関数はデータ集合(リスト、タプルなど)内のすべてのデータに対して次の操作を行います:reduce に渡された関数 function(2つの引数を持つ)は、最初に集合の第1、第2の要素に対して操作を行い、得られた結果をさらに第3のデータと function 関数で演算し、最終的に1つの結果を得ます。
注意:Python3.x では reduce() は functools モジュールに移動されました。使用する場合は、functools モジュールをインポートして reduce() 関数を呼び出す必要があります:
from functools import reduce
構文
reduce() 関数の構文:
reduce(function, iterable[, initializer])
引数
- function -- 関数、2つの引数を持ちます
- iterable -- 反復可能オブジェクト
- initializer -- 省略可能、初期パラメータ
戻り値
関数の計算結果を返します。
例
以下の例は reduce() の使用方法を示しています。
例(Python 2.x)
#!/usr/bin/python
# -*- coding: UTF-8 -*-
def add(x, y) : # 2つの数値を加算
return x + y
sum1 = reduce(add, [1,2,3,4,5]) # リストの合計を計算:1+2+3+4+5
sum2 = reduce(lambda x, y: x+y, [1,2,3,4,5]) # lambda 匿名関数を使用
print(sum1)
print(sum2)
# -*- coding: UTF-8 -*-
def add(x, y) : # 2つの数値を加算
return x + y
sum1 = reduce(add, [1,2,3,4,5]) # リストの合計を計算:1+2+3+4+5
sum2 = reduce(lambda x, y: x+y, [1,2,3,4,5]) # lambda 匿名関数を使用
print(sum1)
print(sum2)
例(Python 3.x)
#!/usr/bin/python
from functools import reduce
def add(x, y) : # 2つの数値を加算
return x + y
sum1 = reduce(add, [1,2,3,4,5]) # リストの合計を計算:1+2+3+4+5
sum2 = reduce(lambda x, y: x+y, [1,2,3,4,5]) # lambda 匿名関数を使用
print(sum1)
print(sum2)
from functools import reduce
def add(x, y) : # 2つの数値を加算
return x + y
sum1 = reduce(add, [1,2,3,4,5]) # リストの合計を計算:1+2+3+4+5
sum2 = reduce(lambda x, y: x+y, [1,2,3,4,5]) # lambda 匿名関数を使用
print(sum1)
print(sum2)
上記の例の出力結果は次のとおりです:
15 15その他の拡張
Python 組み込み関数