「pythonのコードを見ていたら、いきなりlambdaって出てきた…」
「関数をその場で作れるって聞いたけど、どんな時に使うの?」
そんな疑問をお持ちのあなたへ。今回はラムダ関数について、初心者の方でも理解できるように分かりやすく説明していきます。
ラムダ関数とは?「名前のない小さな関数」のこと

ラムダ関数とは、lambda
というキーワードを使って作る名前のない関数です。
「無名関数」と呼ばれることもあります。
普通の関数はdef
を使って名前をつけて作りますが、ラムダ関数は名前をつけずに、その場で簡単な処理を書くことができます。
基本的な書き方
lambda 引数: 処理内容
例えば、数字を2倍にする関数はこう書けます:
lambda x: x * 2
これは「xという値を受け取って、それを2倍にして返す関数」という意味になります。
実際にラムダ関数を使ってみよう

その場ですぐ実行する方法
# 5を2倍にしたい場合
result = (lambda x: x * 2)(5)
print(result) # 10が出力される
変数に入れて後から使う方法
# ラムダ関数を変数に保存
double = lambda x: x * 2
# 後から使用
print(double(3)) # 6が出力される
print(double(7)) # 14が出力される
普通の関数とラムダ関数の違い
項目 | ラムダ関数 | 普通の関数(def) |
---|---|---|
書き方 | lambda x: x * 2 | def double(x): return x * 2 |
行数 | 1行だけ | 何行でもOK |
名前 | なし | 必要 |
向いている用途 | 簡単な処理 | 複雑な処理 |
ラムダ関数が活躍する場面

ラムダ関数は、他の関数の中で「ちょっとした処理」を指定したい時に便利です。
リストの並び替え(sorted関数)
# 文字列のリスト
fruits = ["apple", "banana", "grape", "kiwi"]
# 文字数の少ない順に並び替え
sorted_fruits = sorted(fruits, key=lambda x: len(x))
print(sorted_fruits)
# 結果:['kiwi', 'apple', 'grape', 'banana']
すべての要素に同じ処理をする(map関数)
# 数字のリスト
numbers = [1, 2, 3, 4, 5]
# すべての数字を2倍にする
doubled = list(map(lambda x: x * 2, numbers))
print(doubled)
# 結果:[2, 4, 6, 8, 10]
条件に合うものだけを選ぶ(filter関数)
# 数字のリスト
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
# 偶数だけを取り出す
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)
# 結果:[2, 4, 6, 8]
ラムダ関数を使う時の注意点

できないこと
複数行の処理は書けません
# これはエラーになります
lambda x:
y = x + 1
return y
if文やfor文は使えません
複雑な条件分岐やループが必要な場合は、普通の関数(def)を使いましょう。
使うべき場面・避けるべき場面
使うと良い場面
- 簡単な計算や変換をしたい時
- sorted、map、filterなどの関数で処理を指定したい時
- コードを短くまとめたい時
避けた方が良い場面
- 処理が複雑になる時
- 何をしているのか分からなくなりそうな時
- 同じ処理を何度も使い回す時
まとめ:ラムダ関数は「ちょっとした処理」に便利
Pythonのラムダ関数は、その場で簡単な関数を作れる便利な機能です。
- 書き方:
lambda 引数: 処理内容
- 特徴:1行だけ、名前なし
- 活用場面:sorted、map、filterなどと組み合わせて使う
うまく使えば、もっと読みやすくて短いコードが書けるようになります。
コメント