カテゴリ: Python 更新日: 2025/11/27

Pythonのラムダ式とreduce関数を使った集計処理の例!初心者でもわかるデータ集計の基本

Pythonのラムダ式とreduce関数を使った集計処理の例
Pythonのラムダ式とreduce関数を使った集計処理の例

先生と生徒の会話形式で理解しよう

生徒

「Pythonでリストの数字を全部足し合わせたいんですが、どうやったらいいですか?」

先生

「Pythonにはreduceという関数があって、これを使うとリストの要素をまとめて計算したり、集計したりできますよ。」

生徒

「reduce関数?それとラムダ式ってどう関係するんですか?」

先生

「ラムダ式はその場で使える小さな関数です。reduce関数と組み合わせると、足し算や掛け算などの処理を簡単に書けるんです。」

生徒

「なるほど!具体的な使い方を教えてください!」

1. reduce関数とは?

1. reduce関数とは?
1. reduce関数とは?

reduce関数は、Pythonのfunctoolsモジュールにある関数で、リストなどのデータを1つずつ順に処理して、最終的に1つの値にまとめるために使います。たとえば、数字の合計や掛け算の結果を求めるときに便利です。

「リストの要素を1つずつ順番に処理して、結果を積み重ねる」とイメージするとわかりやすいです。

2. ラムダ式とは?

2. ラムダ式とは?
2. ラムダ式とは?

前回も紹介しましたが、ラムダ式は「小さな匿名関数(名前のない関数)」のことです。1行で簡単に関数を作れます。

例えば、「2つの数字を足す関数」は普通はこう書きます。


def add(a, b):
    return a + b

ラムダ式を使うとこうなります。


lambda a, b: a + b

この「lambda a, b: a + b」が「2つの引数を受け取って、それらを足し算する関数」という意味です。

3. reduce関数とラムダ式を使った合計の計算例

3. reduce関数とラムダ式を使った合計の計算例
3. reduce関数とラムダ式を使った合計の計算例

では、リストの数字を全部足し合わせる例を見てみましょう。


from functools import reduce

numbers = [10, 20, 30, 40, 50]

# reduce関数とラムダ式で合計を計算
total = reduce(lambda a, b: a + b, numbers)

print(total)

実行結果はこちらです。


150

ここでは、lambda a, b: a + bが「2つの数字を足す関数」として使われています。reduce関数はリストの最初の2つを足し、次にその結果と3つ目を足し…という具合に、全部の数字を順番に足していきます。

4. 掛け算の例も見てみよう

4. 掛け算の例も見てみよう
4. 掛け算の例も見てみよう

同じように、リストの数字を全部掛け合わせる例も簡単です。


from functools import reduce

numbers = [1, 2, 3, 4, 5]

# 掛け算をするラムダ式とreduce関数
product = reduce(lambda a, b: a * b, numbers)

print(product)

実行結果はこちらです。


120

掛け算は「1×2×3×4×5」で、結果は120になります。reduce関数がリストの要素を順に掛け合わせてくれます。

5. 初心者にわかりやすい例え:reduceは「たたむ」イメージ

5. 初心者にわかりやすい例え:reduceは「たたむ」イメージ
5. 初心者にわかりやすい例え:reduceは「たたむ」イメージ

reduceは英語で「畳む」という意味です。たとえば、広げた布を少しずつ畳んでいくように、リストの要素を1つずつまとめて1つの結果にします。

だから、足し算なら全部足し合わせて1つの合計に、掛け算なら全部掛けて1つの積になります。

6. まとめではないですが最後に注意点

6. まとめではないですが最後に注意点
6. まとめではないですが最後に注意点

reduce関数は便利ですが、慣れないうちは少しわかりにくいかもしれません。無理に使わず、まずはforループで計算する方法も覚えると良いでしょう。

また、ラムダ式は短い関数を作るときに便利ですが、複雑な処理は通常の関数defで書くことをおすすめします。

カテゴリの一覧へ
新着記事
New1
Flask
Flaskで非同期フォーム送信(Ajax POST)を実装する方法を解説!初心者でもわかるステップ解説
New2
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
New3
Python
PythonでMySQLに接続する方法!pymysqlの基本的な使い方
New4
Flask
FlaskのURLルールとは?ルーティングの基本と動的URLの作り方を解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.2
Java&Spring記事人気No2
Flask
Flaskでデータベースを使う基本!SQLAlchemyの導入方法をやさしく解説
No.3
Java&Spring記事人気No3
Python
Pythonでリストの要素を検索・取得する方法!index()やin演算子の活用法
No.4
Java&Spring記事人気No4
Python
Pythonプログラムの書き方を基礎から学ぼう!初心者が覚えるべき文法とは?
No.5
Java&Spring記事人気No5
Flask
Flaskアプリの環境変数をクラウドで安全に設定する方法!初心者のための完全ガイド
No.6
Java&Spring記事人気No6
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.7
Java&Spring記事人気No7
Python
Pythonのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.8
Java&Spring記事人気No8
Flask
Flaskでクラウド上のメッセージキュー(SQS/PubSub)を扱う完全ガイド!初心者向け解説