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

Pythonのラムダ式と通常の関数(def)の違いを徹底解説!初心者でもわかる書き方と使い分け

Pythonのラムダ式と通常の関数(def)の違いを比較
Pythonのラムダ式と通常の関数(def)の違いを比較

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

生徒

「先生、Pythonのラムダ式ってよく聞くんですけど、普通の関数と何が違うんですか?」

先生

「いい質問ですね。Pythonでは、関数を作る方法が主に2つあります。1つはdefキーワードを使う通常の関数、もう1つはlambdaを使うラムダ式です。」

生徒

「なるほど…でも、どうやって使い分けるんですか?」

先生

「それでは、具体的な違いや使い方を分かりやすく説明していきましょう!」

1. ラムダ式と通常の関数とは?

1. ラムダ式と通常の関数とは?
1. ラムダ式と通常の関数とは?

Pythonで関数を作る方法は主に2種類あります。通常の関数defを使って定義し、複数行の処理や複雑な計算が可能です。一方、ラムダ式lambdaを使って、1行で簡単に書ける「無名関数(名前を付けない関数)」を作ります。

無名関数というのは、その名の通り関数に名前を付けずに、その場だけで使う関数のことです。例えば、お菓子を配るときに「ちょっと持ってて」と一時的に友達に渡すような感覚です。

2. 通常の関数(def)の基本構文

2. 通常の関数(def)の基本構文
2. 通常の関数(def)の基本構文

通常の関数は、以下のようにdefキーワードで定義します。複数行の処理や条件分岐も書けます。


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

result = add_numbers(3, 5)
print(result)

8

このように、通常の関数は名前を付けて何度も呼び出せるのが特徴です。

3. ラムダ式(lambda)の基本構文

3. ラムダ式(lambda)の基本構文
3. ラムダ式(lambda)の基本構文

ラムダ式は、1行で簡単な処理を行う関数を作るときに使います。構文は以下のようになります。


lambda 引数: 戻り値

例えば、2つの数を足すラムダ式は次のように書けます。


add_numbers = lambda a, b: a + b
print(add_numbers(3, 5))

8

ラムダ式は1行で書ける反面、複数行や複雑な処理には向きません。

4. ラムダ式と通常の関数の違い

4. ラムダ式と通常の関数の違い
4. ラムダ式と通常の関数の違い
項目 通常の関数(def) ラムダ式(lambda)
名前 必ず名前を付ける 名前を付けなくても使える
処理の長さ 複数行OK 1行のみ
可読性 長い処理でも分かりやすい 短い処理向き
利用例 大規模な関数、再利用する関数 一時的な関数、簡単な処理

5. 実際の比較例

5. 実際の比較例
5. 実際の比較例

同じ処理を通常の関数とラムダ式で書いてみましょう。


# 通常の関数
def square(x):
    return x * x

print(square(4))

# ラムダ式
square_lambda = lambda x: x * x
print(square_lambda(4))

16
16

結果は同じですが、ラムダ式は短く書けるのが特徴です。

6. どちらを使うべきか?

6. どちらを使うべきか?
6. どちらを使うべきか?

基本的には、複雑な処理や長い関数はdefで書き、一時的で短い処理はlambdaを使います。例えば、リストの並べ替えや一時的な計算にはラムダ式が便利です。


numbers = [5, 2, 9, 1]
numbers.sort(key=lambda x: x)
print(numbers)

[1, 2, 5, 9]

このように、ラムダ式は「その場限りの小さな関数」として非常に役立ちます。

カテゴリの一覧へ
新着記事
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
Python
Pythonのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.6
Java&Spring記事人気No6
Flask
Flaskアプリの環境変数をクラウドで安全に設定する方法!初心者のための完全ガイド
No.7
Java&Spring記事人気No7
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.8
Java&Spring記事人気No8
Flask
Flaskでクラウド上のメッセージキュー(SQS/PubSub)を扱う完全ガイド!初心者向け解説