カテゴリ: Python 更新日: 2026/02/14

Pythonのラムダ式(lambda)とは?無名関数の使い方と活用例

Pythonのラムダ式(lambda)とは?無名関数の使い方と活用例
Pythonのラムダ式(lambda)とは?無名関数の使い方と活用例

先生と生徒の会話形式で理解しよう

生徒

「Pythonのコードでlambdaっていうのを見たんですけど、これは何なんですか?」

先生

lambdaは、関数に名前を付けずにその場で作れる『無名関数』を作るための構文です。」

生徒

「名前を付けない関数?なんでそんなものが必要なんですか?」

先生

「ちょっとした計算や処理を1行で簡潔に書きたいときに便利なんです。特に、他の関数の引数として渡す場面でよく使われますよ。」

生徒

「なるほど!じゃあ具体的に使い方を教えてください!」

-

1. ラムダ式(lambda式)とは?

1. ラムダ式(lambda式)とは?
1. ラムダ式(lambda式)とは?

Pythonのラムダ式(lambda)とは、名前を付けずに定義できる「無名関数」のことです。通常、Pythonで関数を作るにはdefキーワードを使いますが、ラムダ式を使えば、わざわざ関数名を決めなくても、その場でサッと処理を記述できます。

プログラミング未経験の方にとって、「名前がない」というのは不思議に感じるかもしれません。例えるなら、defは「名前を登録して何度も呼び出すレシピ」で、lambdaは「その場で使い切るメモ書き」のようなイメージです。非常にシンプルで短い処理を書くのに特化しています。

基本の書き方:
lambda 引数: 処理内容

まずは、数値に10を足すだけの簡単なプログラムで、deflambdaの違いを比較してみましょう。


# 1. 従来の「def」を使った関数の書き方
def plus_ten(x):
    return x + 10

# 2. 「ラムダ式」を使った書き方
# 「xを受け取って、x + 10を返す」という処理を一行で定義
plus_ten_lambda = lambda x: x + 10

# どちらも結果は同じになります
print(plus_ten(5))
print(plus_ten_lambda(5))

15
15

このように、ラムダ式を使うとdefreturnといった記述を省略でき、コードが非常にスッキリします。ただし、ラムダ式は「1つの式」しか書けないというルールがあるため、複雑な条件分岐や長い計算には向きません。あくまで「シンプルで使い捨ての処理」に使うのが、Pythonらしい綺麗なコードを書くコツです。

2. ラムダ式の基本的な使い方

2. ラムダ式の基本的な使い方
2. ラムダ式の基本的な使い方

ラムダ式は変数に代入して使うこともできますが、関数の引数として渡すケースが多いです。特に、sorted()map()filter()といった組み込み関数と組み合わせて使われます。


numbers = [5, 2, 9, 1]
# 昇順ソート(通常のキー指定)
print(sorted(numbers))

# 各要素を2倍した値でソート
print(sorted(numbers, key=lambda x: x * 2))

[1, 2, 5, 9]
[1, 2, 5, 9]

このように、key引数にラムダ式を渡して処理内容を指定できます。

3. map() とラムダ式

3. map() とラムダ式
3. map() とラムダ式

map()関数は、リストやタプルなどの各要素に同じ処理を適用して、新しいデータを作ります。ラムダ式を使うと、簡単な変換処理を一行で書けます。


numbers = [1, 2, 3]
result = list(map(lambda x: x * 10, numbers))
print(result)

[10, 20, 30]

4. filter() とラムダ式

4. filter() とラムダ式
4. filter() とラムダ式

filter()関数は、リストなどから条件に合う要素だけを取り出します。ラムダ式を使えば条件式を直接書けます。


numbers = [1, 2, 3, 4, 5]
result = list(filter(lambda x: x % 2 == 0, numbers))
print(result)

[2, 4]
-

5. sorted() とラムダ式の応用

5. sorted() とラムダ式の応用
5. sorted() とラムダ式の応用

例えば、商品リストを価格順に並び替える場合、ラムダ式を使うととても簡単です。


products = [
    {"name": "りんご", "price": 120},
    {"name": "バナナ", "price": 100},
    {"name": "ぶどう", "price": 200}
]

sorted_products = sorted(products, key=lambda x: x["price"])
print(sorted_products)

[{'name': 'バナナ', 'price': 100}, {'name': 'りんご', 'price': 120}, {'name': 'ぶどう', 'price': 200}]

6. 初心者が覚えるべきポイント

6. 初心者が覚えるべきポイント
6. 初心者が覚えるべきポイント
  • ラムダ式はlambda 引数: 処理の形で書く
  • 簡単な処理を短く書きたいときに使う
  • 複雑な処理はdefで関数を定義したほうが読みやすい
  • map()filter()sorted()などと組み合わせると便利

ラムダ式を理解すると、Pythonでのデータ処理や並び替えがスッキリ書けるようになります。

まとめ

まとめ
まとめ

Pythonのラムダ式(無名関数)は、ちょっとした処理を簡潔に書く際に非常に便利な構文です。特に、データの並び替えや変換などの処理と組み合わせることで、コード全体を短くまとめ、読みやすさを保ちながら柔軟性を高めることができます。また、Pythonの標準関数であるsorted()map()filter()などとラムダ式を組み合わせることで、日常的なデータ操作もより効率的に行えるようになります。たとえば、リストの並び替えやフィルタリングを、その場で書いた条件に従ってシンプルに実行できるのは、ラムダ式の持つ大きな特徴です。

さらに、ラムダ式はコード量を減らしたいときや、一度しか使わない処理をわざわざ関数として定義する必要がない場面でも役立ちます。無名関数であるため、名前を管理する手間が省け、処理そのものに集中できるという利点もあります。特にデータ分析やWeb開発、リスト操作が多いプログラムでは、ラムダ式を取り入れることでコードの見通しが良くなり、作業効率が大きく向上します。Pythonを使い始めたばかりの初心者にとっても、理解しておくだけで大きな武器になる機能といえます。

ただし、ラムダ式は万能ではありません。複雑な処理を無理にラムダ式で書こうとすると、かえって読みづらくなるため、適切な場面で使い分けることが大切です。簡潔に書きたいときはラムダ式、処理が複雑になるときはdefを使って通常の関数を定義するというように、用途に応じて選択しましょう。これにより、コードの可読性と保守性の両方を保つことができます。

ラムダ式の振り返りコード例

まとめとして、ラムダ式を使ったリスト変換の例をあらためて掲載します。短いコードで書ける利便性を確認してみましょう。


numbers = [1, 3, 5, 7]
# 各値を3倍して新しいリストを作成
triple_numbers = list(map(lambda x: x * 3, numbers))

print(triple_numbers)

[3, 9, 15, 21]

このように、ラムダ式を使えば一時的な小さな処理もスッキリ記述でき、Pythonの強みである簡潔なコードスタイルをより活かすことができます。日々のプログラミングで自然に使いこなせるよう、少しずつ練習していくと良いでしょう。

先生と生徒の振り返り会話

生徒

「今日のラムダ式の勉強で、短い処理をすぐに書けるっていう便利さがすごくよく分かりました!特に map()filter() と組み合わせる場面で本当に役立ちそうですね。」

先生

「その通りです。ラムダ式は“ちょっとした処理をすぐ書きたい”ときに力を発揮します。データ変換や並べ替えのような場面では、コードがとても読みやすくなりますよ。」

生徒

「でも、ラムダ式だけに頼るんじゃなくて、複雑な処理は普通の関数を使った方が良いというバランスも大事なんですね。」

先生

「ええ、その見極めができるようになると、コードの質が大きく上がります。ラムダ式はあくまで道具の一つですから、使う場面を選んで活かしてください。」

生徒

「はい!早速いろんな処理で試してみます!」

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
New1
Python
Pythonの変数スコープとは?初心者でもわかるローカル変数とグローバル変数の違い
New2
Python
PythonのNoneとは?NoneTypeの使い方とnullとの違いをわかりやすく解説
New3
Python
Pythonで文字列の長さを取得する方法!len()の基本と応用
New4
PHP
PHP のインストール方法(Windows・Mac・Linux)と開発環境
-
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonでファイルの更新日やサイズを取得する方法!初心者でもわかるos.stat()の使い方
No.2
Java&Spring記事人気No2
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.3
Java&Spring記事人気No3
PHP
PHPでREST APIを作る方法を完全ガイド!初心者でもわかるAPI開発入門
No.4
Java&Spring記事人気No4
Python
Pythonの書き方を基本から解説!はじめてのPythonプログラム
No.5
Java&Spring記事人気No5
PHP
PHP のインストール方法(Windows・Mac・Linux)と開発環境
No.6
Java&Spring記事人気No6
PHP
初心者向けにPHP でファイルを開く・読み込む・書き込む方法(fopen, fwrite, fread)を解説する記事
No.7
Java&Spring記事人気No7
Python
Pythonのコンストラクタ(__init__)の使い方を解説!初心者でもわかるオブジェクトの初期化
No.8
Java&Spring記事人気No8
PHP
PHP の可変変数と変数の参照渡しを完全解説!初心者でも理解できる動的変数の使い方
-
-