カテゴリ: 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
Django
Djangoバリデーション入門|フォームとモデルの入力チェック基本をやさしく理解しよう
New2
Django
Djangoテンプレートの変数展開まとめ|初心者向けにわかりやすく解説
New3
Django
Django ModelFormの使い方完全ガイド!初心者でもわかる新規登録フォーム作成
New4
Django
Djangoテンプレートの使い方を完全解説!初心者でもわかるタグ・フィルタ入門
人気記事
No.1
Java&Spring記事人気No1
Python
PythonでNoSQL操作!エラーハンドリングを初心者向けに徹底解説
No.2
Java&Spring記事人気No2
Flask
Flaskで多言語対応のログメッセージを出力する方法!Python初心者向けガイド
No.3
Java&Spring記事人気No3
Python
PythonのSQLAlchemy使い方入門!初心者でもわかるインストールと初期設定
No.4
Java&Spring記事人気No4
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.5
Java&Spring記事人気No5
Flask
FlaskでJSONレスポンスを多言語化!API設計の基本を初心者向けに解説
No.6
Java&Spring記事人気No6
Python
PythonのSQLAlchemyでデータベース操作!モデルクラスでテーブル定義する方法を徹底解説
No.7
Java&Spring記事人気No7
Python
PythonでCassandraに接続する方法を完全ガイド!cassandra-driverの使い方
No.8
Java&Spring記事人気No8
Python
PythonでREST APIを作る方法!初心者向けFastAPI入門