Pythonのラムダ式の書き方と構文を初心者向けに解説
先生と生徒の会話形式で理解しよう
生徒
「Pythonで短く関数を書ける方法ってありますか?」
先生
「はい、あります。lambda(ラムダ式)を使えば、名前を付けずに一行で関数を書けますよ。」
生徒
「名前を付けない関数って、どういうことですか?」
先生
「それは“無名関数”と呼ばれるもので、ちょっとした処理を簡単に書くのに便利です。今から書き方と構文を説明しますね!」
1. ラムダ式(lambda)とは?
Pythonのラムダ式とは、無名関数(名前を付けない関数)を作るための書き方です。通常、関数はdefを使って作りますが、短い処理のためにわざわざ名前を付けるのは面倒な場合があります。
そんなとき、lambdaを使うと簡潔に1行で関数が書けます。
例えば、「数字を2倍にする」処理を関数で書く場合、通常の方法はこうです。
def double(x):
return x * 2
print(double(5))
10
ラムダ式を使うと、こう書けます。
double = lambda x: x * 2
print(double(5))
10
2. ラムダ式の基本構文
ラムダ式の構文は次の通りです。
lambda 引数1, 引数2, ... : 戻り値となる式
ポイントは以下の通りです。
lambdaの後に引数を書きます(引数が不要な場合は空でもOK):の右側に処理(式)を書きます- 処理は1行で書く必要があります(複数行は不可)
3. 普通の関数との違い
通常の関数とラムダ式の違いを比較します。
# 通常の関数
def add(a, b):
return a + b
# ラムダ式
add_lambda = lambda a, b: a + b
print(add(3, 4))
print(add_lambda(3, 4))
7
7
結果は同じですが、ラムダ式は短く書ける分、簡単な処理専用にするのがおすすめです。
4. ラムダ式の活用例
ラムダ式は特に関数を引数として渡すときに便利です。
4-1. ソートのキーに使う
data = [(1, "apple"), (3, "banana"), (2, "cherry")]
sorted_data = sorted(data, key=lambda x: x[1])
print(sorted_data)
[(1, 'apple'), (3, 'banana'), (2, 'cherry')]
4-2. filterで条件抽出
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)
[2, 4, 6]
4-3. mapでデータ変換
numbers = [1, 2, 3]
doubled = list(map(lambda x: x * 2, numbers))
print(doubled)
[2, 4, 6]
5. ラムダ式を使うときの注意点
ラムダ式は便利ですが、以下の点に注意しましょう。
- 複雑な処理には向かない(1行しか書けないため)
- 可読性(読みやすさ)が下がる場合がある
- デバッグ時に関数名がないため、エラー箇所がわかりにくい
そのため、短く簡単な処理 → ラムダ式、長く複雑な処理 → 通常の関数という使い分けをおすすめします。