Pythonでのreduce()の使い方について解説します。
覚えているとプログラミングが効率良く書ける便利な関数です。
目次
reduce() の使い方
reduce()
は2つの引数を使います。厳密には、3つ目もありますが、使いません。
第1引数 function
関数を示す。これはほとんどの場合、ラムダ関数
第2引数 iterable
反復可能なオブジェクト(例:リスト、タプル、辞書)
Returned 反復処理可能な要素に関数を適用した結果得られた一つの値
関数を定義し、その関数を反復可能なオブジェクトに適用させていき、1つの結果を返します。
リストに対して、reduce()を活用した時を例に使い方を説明していきます。
今回は、以下の2つに取り組みます。
① リストの中の値を合計して、合計値を出力
② リストの中から最大要素を探し出し、出力
# Importが必要です
from functools import reduce
# 仮のlistを定義
sample_list = [3, 5, 2, 7, 1, 3, 4]
# reduceを使用してリストの合計を計算する
print("リスト要素の合計 : ", end="" )
print(reduce(lambda a, b: a + b, sample_list))
# reduceを使用してリストから最大要素を計算する
print("リストの中の最大値は : ", end="")
print(reduce(lambda a, b: a if a > b else b, sample_list))
"""
リスト要素の合計 : 25
リストの中の最大値は : 7
"""
上記のように、自分で関数を定義してすぐにリスト全体に適用させることができます。
リストの操作が必要な時は、ぜひ使ってみてください。
慣れるまでは少し使い辛いかもしれませんが、慣れると便利です。