Pythonを書いていると、「簡単な処理なのに関数を書くほどでもない」と感じる場面があります。
そんなときによく使われるのが「lambda(ラムダ)関数」です。
最初は少しとっつきにくく見えますが、使い方はとてもシンプルです。
この記事では、lambda関数の基本から、よくある使い方までをやさしく解説していきます。
pandasの導入記事はこちら。
Python入門:pandasの基本をやさしく解説(データ操作の超入門) – Lean Data Office
lambda関数とは何か?
lambda関数とは、「名前を付けずに、その場で簡単に関数を定義できる仕組み」です。
通常の関数は、次のように書きます。
def add(x,y):
return x + y

これをlambdaで書くと、次のようになります。

同じ処理ですが、よりコンパクトに書けているのが分かります。
lambda関数の基本の形
lambda関数の書き方はシンプルです。
lambda 引数: 戻り値
例えば、1つの値を2倍にする場合はこう書けます。
double = lambda x: x * 2

普通の関数と違い、returnは書かなくても自動で値が返されます。
なぜlambda関数を使うのか?
lambda関数は、「わざわざ関数名を付けるほどでもない処理」に向いています。
特に次のようなケースでよく使われます。
短い処理をその場で書きたい
一度しか使わない関数を定義したい
リスト処理や並び替えの中で使いたい
コードをシンプルに保てるのが大きなメリットです。
リスト操作でよく使う
lambda関数は、リスト処理と組み合わせて使うことが多いです。
例えば、リストの各要素を2倍にする場合。
numbers = [1, 2, 3, 4]
result = list(map(lambda x: x * 2, numbers))
print(result)

出力はこうなります。
[2, 4, 6, 8]
mapと組み合わせることで、「各要素に対する処理」を簡潔に書けます。
条件と組み合わせる
lambdaの中で簡単な条件分岐も書けます。
numbers = [1, 2, 3, 4]
result = list(map(lambda x: "even" if x % 2 == 0 else "odd", numbers))
print(result)

このように、「偶数か奇数か」をその場で判定することもできます。
並び替え(sort)で使う
実務でかなりよく使うのが、並び替えのときです。
例えば、次のようなデータがあるとします。
data = [
{"name": "A", "age": 30},
{"name": "B", "age": 20},
{"name": "C", "age": 25}
]
これを年齢順に並べ替えたい場合。
sorted_data = sorted(data, key=lambda x: x["age"])

lambdaを使うことで、「どの値を基準に並べるか」をその場で指定できます。
pandasとの組み合わせ
pandasを使う場合も、lambdaはよく登場します。
例えば、列の値を加工する場合です。
Python
import pandas as pd
df = pd.DataFrame({
“price”: [100, 200, 300]
})
df[“tax_included”] = df[“price”].apply(lambda x: x * 1.1)
print(df)
Show more lines
このように、各行に対する簡単な処理を書くときに便利です。
注意点:複雑な処理には向かない
lambda関数は便利ですが、何でも書けばよいわけではありません。
たとえば、処理が長くなる場合は通常の関数の方が読みやすくなります。
Python
# あまりよくない例
lambda x: x * 2 if x > 10 else x / 2 if x > 5 else x + 1
Show more lines
このようなコードは、一見コンパクトですが、あとから読むと分かりづらくなります。
「短くてシンプルな処理だけに使う」というのがポイントです。
まとめ
lambda関数は、Pythonの中でも「知っているとコードがすっきりする」便利な機能です。
今回のポイントを整理すると、
- lambdaは「名前なし関数」
- 書き方は
lambda 引数: 処理 - 短い処理に向いている
- mapやsort、pandasと相性がよい
最初は少し慣れが必要ですが、実際に使い始めると「短く書ける便利さ」を実感できるようになります。
まずは、簡単な計算やリスト処理の中で使ってみるところから始めてみてください。