カテゴリ: 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
Django
Djangoプロジェクトのディレクトリ構造を完全解説!初心者でも迷わないフォルダの見方
New2
Flask
Flask×Flask-SocketIOでチャットアプリを作る流れを初心者向けにやさしく解説
New3
Flask
Flaskアプリの作り方を基礎から学ぼう!初心者が覚えるべき開発の流れとは?
New4
Flask
Flask-WTFでファイルアップロードフォームを完全ガイド!初心者でもわかる画像やPDFのアップロード方法
人気記事
No.1
Java&Spring記事人気No1
Django
Django環境構築の全手順を完全解説!初心者でも迷わないPython・Djangoセットアップガイド
No.2
Java&Spring記事人気No2
Flask
Flask-Loginでユーザー認証を完全ガイド!初心者でもわかるログイン処理の作り方
No.3
Java&Spring記事人気No3
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.4
Java&Spring記事人気No4
Python
PythonでHello Worldを表示するには?初心者向けに最初の1行を実行してみよう
No.5
Java&Spring記事人気No5
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
No.6
Java&Spring記事人気No6
Python
Pythonでリストを文字列に変換する方法を完全ガイド!初心者でもわかるjoinの使い方
No.7
Java&Spring記事人気No7
Python
Pythonのmatch文(パターンマッチング)とは?switch文の代替としての使い方をやさしく解説
No.8
Java&Spring記事人気No8
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本