Pythonでは、関数に名前をつけずに「その場で」使える便利な書き方があります。それが 無名関数(lambda関数) です。
この記事では、初心者の方にもわかりやすく lambda(ラムダ)式の使い方・メリット・注意点 を解説します。
この記事の対象
無名関数とは?
無名関数とは、名前の無い関数で変数に代入して用いるものです。関数を宣言することなく関数を使用できるのが無名関数です。Pythonでは「lambda(ラムダ)」を用いることで無名関数を実現できます。
通常、Pythonの関数は def
を使ってこう書きます:
def average(x, y):
return (x + y) / 2
ですが、一時的に使いたいだけの簡単な関数なら、わざわざ名前をつけるのは面倒です。
そんなときに便利なのが lambda
(ラムダ)というキーワードです。
lambda式は、1つ以上の引数を取り、単一の式を評価して、その値を返します。無名関数は、一時的に関数が必要な場合や、短いコードの断片で関数を定義する場合に役立ちます。
無名関数のメリットは、次のとおりです。
- 一時的な関数が必要な場合に便利である。
- シンプルな処理を行うために使用でき、可読性の高いコードを書くことができる。
一方、デメリットは次のようになります。
- 複雑な処理には向いていない。
- 名前のない関数であるため、複雑なコードで使用される場合、可読性が低下することがある。
lambda式の書き方
#無名関数の型
変数名 = lambda 引数1,引数2,引数3...:処理内容
ポイント
return
は不要!(自動で返されます):
の右に書いた式がそのまま返されます- あくまで「シンプルな処理」に向いています
無名関数を用いた使用例
実際に使ってみよう!
# 2つの値の平均を計算する無名関数
average = lambda x, y: (x + y) / 2
# 関数を使ってみる
print(average(80, 90))
上記のプログラムの出力結果は「85.0」です。無名関数として、80と90を引数として処理しているプログラムとなります。
結果
85.0
よくある使い方例
# リストを要素の長さでソート
words = ['banana', 'apple', 'kiwi']
words.sort(key=lambda x: len(x))
print(words)
結果
['kiwi', 'apple', 'banana']
lambda関数のメリット
メリット | 説明 |
---|---|
✅ 簡潔に書ける | 1行で関数を定義できる |
✅ 一時的に使える | 他の関数の引数としてその場で書ける(例:map() やsorted() ) |
✅ コードが読みやすくなる | 小さい処理なら def よりスマート |
デメリット・注意点
デメリット | 説明 |
---|---|
⚠ 複雑な処理には不向き | 条件分岐や複数ステップの処理には不適 |
⚠ 名前がないので追いにくい | デバッグや再利用には不便な場合も |
まとめ
内容 | ポイント |
---|---|
lambda式の目的 | 名前なしで簡単な関数を作れる |
使いどころ | 簡単な処理、一時的な関数、関数の引数など |
注意点 | 複雑な処理は def を使おう! |
次に読む:関数とは?-操作方法と概要-