カテゴリ: Python 更新日: 2025/09/22

Pythonの匿名関数(lambda)と通常の関数の違いを比較!使い分けガイド

Pythonの匿名関数(lambda)と通常の関数の違いを比較!使い分けガイド
Pythonの匿名関数(lambda)と通常の関数の違いを比較!使い分けガイド

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

生徒

「Pythonでlambdaっていう書き方を見たんですけど、普通の関数と何が違うんですか?」

先生

lambda匿名関数と呼ばれていて、その場で簡単に関数を作る方法なんです。通常の関数と違って名前を付けなくても使えます。」

生徒

「じゃあ、普通のdefで作る関数はいらないんですか?」

先生

「いえ、状況によって使い分けが大事です。今からlambdaと通常の関数の違いと使いどころを詳しく見ていきましょう。」

-

1. 匿名関数(lambda)とは?

1. 匿名関数(lambda)とは?
1. 匿名関数(lambda)とは?

匿名関数とは、その名の通り名前を持たない関数のことです。Pythonではlambdaキーワードを使って定義します。

書き方はシンプルで、1行で関数を定義できるのが特徴です。例えば、2つの数を足す匿名関数はこう書けます。


add = lambda x, y: x + y
print(add(3, 5))  # 出力: 8

このようにlambdaは一度きり使う簡単な処理に向いています。

2. 通常の関数(def)との違い

2. 通常の関数(def)との違い
2. 通常の関数(def)との違い

通常の関数はdefキーワードで定義し、複数行の処理や条件分岐、ループなども含められます。


def add(x, y):
    return x + y
print(add(3, 5))  # 出力: 8

比較すると、lambdaは1行だけで結果を返すのに対し、defは複雑な処理も可能です。

3. 使い分けの目安

3. 使い分けの目安
3. 使い分けの目安
  • lambda:短い一時的な処理(例:ソートのキー指定、簡単な計算)
  • def:複雑な処理、再利用する関数、大量のコードを含む場合

例えば、リストを値の長さでソートするときにlambdaが便利です。


words = ["apple", "banana", "cherry"]
words.sort(key=lambda x: len(x))
print(words)  # 出力: ['apple', 'cherry', 'banana']

4. 実用例:mapとlambdaの組み合わせ

4. 実用例:mapとlambdaの組み合わせ
4. 実用例:mapとlambdaの組み合わせ

lambdamap()filter()sorted()などの関数と組み合わせると便利です。


numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x ** 2, numbers))
print(squared)  # 出力: [1, 4, 9, 16, 25]

このように、わざわざdefで関数を作らず、その場で簡潔に記述できます。

-

5. lambdaの制限と注意点

5. lambdaの制限と注意点
5. lambdaの制限と注意点

lambdaには以下の制限があります。

  • 1行でしか書けない(複数行の処理不可)
  • 条件分岐や例外処理は基本的に使いにくい
  • コードの可読性が下がる場合がある

無理にlambdaを使うと、後でコードを読んだときに分かりにくくなることがあります。

6. 通常関数を選ぶべきケース

6. 通常関数を選ぶべきケース
6. 通常関数を選ぶべきケース

複雑な処理や、他の場所からも何度も呼び出す予定がある処理はdefを使いましょう。


def process_numbers(numbers):
    result = []
    for n in numbers:
        if n % 2 == 0:
            result.append(n * 2)
        else:
            result.append(n)
    return result

print(process_numbers([1, 2, 3, 4]))

[1, 4, 3, 8]

7. まとめると

7. まとめると
7. まとめると

lambdaは短く簡単な処理に、defは複雑で再利用する処理に向いています。両方を適材適所で使うことで、Pythonのコードはより効率的で読みやすくなります。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
Pythonの例外発生の基本をマスター!初心者でもわかるraise文の使い方ガイド
Pythonでタプルの要素数を取得する方法(len()の使い方)初心者でもわかる数え方の基本
Pythonの辞書をデータフレーム(Pandas)に変換する方法 初心者向け完全ガイド
PHPでスパム対策!CAPTCHAの使い方を初心者向けにやさしく解説
人気記事
No.1
PHP&Python記事人気No1
Pythonの例外処理をやさしく解説!初心者でもわかるtry-exceptの基本と使い方
No.2
PHP&Python記事人気No2
PHPでJSONデータを扱う方法をやさしく解説!初心者でもわかるjson_encodeとjson_decode
No.3
PHP&Python記事人気No3
Pythonのデータ型変換まとめ!int, float, str, list などの変換方法
No.4
PHP&Python記事人気No4
PHPのデフォルト引数の設定方法をやさしく解説!初心者でも安心の入門ガイド
-