【初心者向け】Pythonのラムダ関数とは?使い方をやさしく解説!

python

「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 * 2def 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などと組み合わせて使う

うまく使えば、もっと読みやすくて短いコードが書けるようになります。

コメント

タイトルとURLをコピーしました