1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pythonのlambda式とは?

Posted at

Pythonを書いていると、lambda というキーワードを目にすることがあります。
一見するとシンプルですが、「いつ使うべきか分からない」「可読性が下がりそう」と感じる人も多いのではないでしょうか。


lambda式とは何か

lambda 式は 名前を持たない無名関数 を定義するための仕組みです。

基本構文

lambda 引数1, 引数2, ...: 戻り値

通常の関数定義と比較すると、次のようになります。

# 通常の関数
def add(x, y):
    return x + y

# lambda式
add = lambda x, y: x + y

ポイントは以下の通りです。

  • 1行で完結する
  • 処理は1つの式のみ
  • return文は書けない(式の結果が自動で返る)

lambda式の代表的な使いどころ

lambda式は「その場限りの簡単な処理」に向いています。

map / filter / sorted と組み合わせる

numbers = [1, 2, 3, 4, 5]

# 各要素を2倍
result = list(map(lambda x: x * 2, numbers))
# 偶数だけ抽出
result = list(filter(lambda x: x % 2 == 0, numbers))
# 特定キーでソート
users = [{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}]
users.sort(key=lambda u: u["age"])

このように、「短く・一時的な処理」を書く場合に非常に相性が良いです。


lambda式を使うメリット

lambda式を使う主な利点は以下です。

  • コード量が減り、簡潔に書ける
  • 一時的な関数を定義するためにdefを書かずに済む
  • 処理の意図がその場で分かりやすい(短い場合)

特にコレクション操作では、読みやすさと記述量のバランスが良くなります。


lambda式を使うべきでないケース

便利なlambda式ですが、万能ではありません。

複雑な処理には不向き

# 悪い例
lambda x: x * 2 if x > 10 else x / 2 if x > 5 else x + 1

このようなコードは可読性が著しく低下します。

再利用する処理

  • 複数箇所で使う
  • 名前を付けたほうが意図が伝わる

この場合は、素直に def を使うほうが良いです。


def と lambda の使い分け指針

判断に迷ったら、以下を基準にすると実務では失敗しにくくなります。

  • 1行・一時的 → lambda
  • 複数行・再利用 → def
  • 可読性が下がる → def

「短く書ける」よりも「後から読める」ことを優先するのが重要です。


まとめ

Pythonのlambda式は、正しく使えばコードを簡潔にし、可読性も向上します。

一方で、複雑なロジックを無理にlambdaで書くと、保守性が下がる原因にもなります。
「小さく・その場限り」を意識して使い分けることで、lambda式は非常に強力な武器になります。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?